From 58e2aed5c5da8cdf41abd189bd0c027668e65880 Mon Sep 17 00:00:00 2001 From: Dolph Mathews Date: Thu, 1 Oct 2015 17:39:45 +0000 Subject: [PATCH] Add docstring validation This introduces a linter for PEP257 to avoid trivial nitpicking of docstrings in code reviews. Because flake8_docstrings simply provides a plugin to add pep257 to flake8, you can run it via `tox -e pep8`. PEP257 checks which we are currently violating are ignored in tox.ini. We can remove them from the ignored list as they are fixed. Change-Id: I01ebad7b70cf61dd80d3c06c6808d8178fbdd634 Related-Bug: 1501544 Depends-On: I60adf0dca4aa32f4ef6bca61250b375c8a3703c6 --- test-requirements.txt | 1 + tox.ini | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/test-requirements.txt b/test-requirements.txt index 14b49af3..268a0f57 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,6 +3,7 @@ # process, which may cause wedges in the gate later. hacking<0.11,>=0.10.0 +flake8_docstrings==0.2.1.post1 coverage>=3.6 discover diff --git a/tox.ini b/tox.ini index 42b9e31b..51485904 100644 --- a/tox.ini +++ b/tox.ini @@ -32,12 +32,24 @@ downloadcache = ~/cache/pip commands = oslo_debug_helper -t keystoneauth1/tests {posargs} [flake8] -# NOTE(lhcheng): Even though we aren't ignoring any hacking checks, we have -# to leave it assigned in the environment specification otherwise some error -# checks will be ignored by default. If we need to ignore a specific hacking -# check in the future, we will have to remove '___' from the ignore line. -# See: http://flake8.readthedocs.org/en/latest/config.html#default -ignore = ___ +# H405: multi line docstring summary not separated with an empty line +# D100: Missing docstring in public module +# D101: Missing docstring in public class +# D102: Missing docstring in public method +# D103: Missing docstring in public function +# D104: Missing docstring in public package +# D105: Missing docstring in magic method +# D200: One-line docstring should fit on one line with quotes +# D202: No blank lines allowed after function docstring +# D203: 1 blank required before class docstring. +# D204: 1 blank required after class docstring +# D205: Blank line required between one-line summary and description. +# D208: Docstring is over-indented +# D211: No blank lines allowed before class docstring +# D301: Use r”“” if any backslashes in a docstring +# D400: First line should end with a period. +# D401: First line should be in imperative mood. +ignore = H405,D100,D101,D102,D103,D104,D105,D200,D202,D203,D204,D205,D208,D211,D301,D400,D401 show-source = True exclude = .venv,.tox,dist,doc,*egg,build,*openstack/common*