From dd74824840c0b5899dcbc4b5a7b61b4398218fd1 Mon Sep 17 00:00:00 2001 From: David Sanders Date: Thu, 24 Jan 2019 13:57:17 -0700 Subject: [PATCH] Add docstring checking with pydocstyle --- .pydocstyle.ini | 30 ++++++++++++++++++++++++++++++ setup.py | 1 + tox.ini | 1 + 3 files changed, 32 insertions(+) create mode 100644 .pydocstyle.ini diff --git a/.pydocstyle.ini b/.pydocstyle.ini new file mode 100644 index 0000000..0d40aa8 --- /dev/null +++ b/.pydocstyle.ini @@ -0,0 +1,30 @@ +[pydocstyle] +; All error codes found here: +; http://www.pydocstyle.org/en/3.0.0/error_codes.html +; +; Ignored: +; D1 - Missing docstring error codes +; +; Selected: +; D2 - Whitespace error codes +; D3 - Quote error codes +; D4 - Content related error codes +select=D2,D3,D4 + +; Extra ignores: +; D200 - One-line docstring should fit on one line with quotes +; D203 - 1 blank line required before class docstring +; D204 - 1 blank line required after class docstring +; D205 - 1 blank line required between summary line and description +; D212 - Multi-line docstring summary should start at the first line +; D302 - Use u""" for Unicode docstrings +; D400 - First line should end with a period +; D401 - First line should be in imperative mood +; D412 - No blank lines allowed between a section header and its content +add-ignore=D200,D203,D204,D205,D212,D302,D400,D401,D412 + +; Explanation: +; D400 - Enabling this error code seems to make it a requirement that the first +; sentence in a docstring is not split across two lines. It also makes it a +; requirement that no docstring can have a multi-sentence description without a +; summary line. Neither one of those requirements seem appropriate. diff --git a/setup.py b/setup.py index 047d6ff..6c02fb2 100644 --- a/setup.py +++ b/setup.py @@ -14,6 +14,7 @@ extras_require = { 'lint': [ "flake8==3.4.1", "isort>=4.2.15,<5", + "pydocstyle>=3.0.0,<4", ], 'doc': [ "Sphinx>=1.6.5,<2", diff --git a/tox.ini b/tox.ini index 71e19f2..6372125 100644 --- a/tox.ini +++ b/tox.ini @@ -40,3 +40,4 @@ extras=lint commands= flake8 {toxinidir}/ {toxinidir}/tests isort --recursive --check-only --diff {toxinidir}/ {toxinidir}/tests + pydocstyle {toxinidir}/ {toxinidir}/tests