NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1966 most downloaded on PyPI
Python docstring style checker
Last release 4 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 1.6 years
Nearly every release is documented
notes for 22 of 23 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
23 releases · first in 2016
Fix typo in pre-commit-hook by @samj1912 in #624
ignore-self-only-init option by @thejcannon in #560Full Changelog: 6.2.3...6.3.0
New Features
Add ignore-self-only-init config (#560).
Bug Fixes
Revert - Obey match rules in pre-commit usage (#610).
Fix decorator parsing for async functions by @cdce8p in #577
One column per quarter.
Bug Fixes
Fix decorator parsing for async function. Resolves some false positives with async functions and overload. (#577)
Obey match rules in pre-commit usage (#610).
Fix false positive of google convention missing args descriptions by @stinovlas in #619
Full Changelog: 6.2.1...6.2.2
Bug Fixes
Fix false positives of D417 in google convention docstrings (#619).
Add https protocol on websites at the README.rst by @realFranco in #611
Full Changelog: 6.2.0...6.2.1
Bug Fixes
Use tomllib/tomli to correctly read .toml files (#599, #600).
Gitpod-ify the repository by @samj1912 in #548
Full Changelog: 6.1.1...6.2.0
New Features
Allow for hanging indent when documenting args in Google style. (#449)
Add support for property_decorators config to ignore D401.
Add support for Python 3.10 (#554).
Replace D10X errors with D419 if docstring exists but is empty (#559).
Add support for Sphinx-style parameter descriptions to D417.
Bug Fixes
Fix --match option to only consider filename when matching full paths (#550).
Split --source by lines instead of by characters (#536).
Bug Fixes
Split --source by lines instead of by characters (#536).
Enable full toml configuration and pyproject.toml (#534).
New Features
Enable full toml configuration and pyproject.toml (#534).
Support for Python 3.5 has been dropped (#510).
Major Updates
Support for Python 3.5 has been dropped (#510).
New Features
Add flag to disable # noqa comment processing in API (#485).
Methods, Functions and Nested functions that have a docstring now throw D418 (#511).
Methods decorated with @overload no longer reported as D102 (#511).
Functions and nested functions decorated with @overload no longer reported as D103 (#511).
Bug Fixes
Treat "package" as an imperative verb for D401 (#356).
Fix the parsing of decorated one line functions (#499).
Fix IndexError crash on one-line backslashed docstrings (#506).
Bug Fixes
Fix IndexError crash on one-line backslashed docstrings (#506).
Skip function arguments prefixed with _ in D417 check (#440).
New Features
Skip function arguments prefixed with _ in D417 check (#440).
Bug Fixes
Update convention support documentation (#386, #393)
Detect inner asynchronous functions for D202 (#467)
Fix indentation error while parsing class methods (#441).
Fix a bug in parsing Google-style argument description. The bug caused some argument names to go unreported in D417 (#448).
Fixed an issue where skipping errors on module level docstring via #noqa failed when there where more prior comments (#446).
Support backslash-continued descriptions in docstrings (#472).
Correctly detect publicity of modules inside directories (#470, #494).
Fix DeprecationWarning / SyntaxError "invalid escape sequence" with Python 3.6+ (#445).
Bug Fixes
Fix DeprecationWarning / SyntaxError "invalid escape sequence" with Python 3.6+ (#445).
Fixed an issue where AttributeError was raised when parsing the parameter section of a class docstring (#434, #436).
Bug Fixes
Fixed an issue where AttributeError was raised when parsing the parameter section of a class docstring (#434, #436).
Support for Python 3.4 has been dropped (#402).
Major Updates
Support for Python 3.4 has been dropped (#402).
New Features
Extend support for detecting missing arguments in Google style docstrings to method calls (#384).
Extend support for detecting missing argument description in Numpy style docstrings (#407).
Added support for Python 3.8 (#423).
Allow skipping errors on module level docstring via #noqa (#427).
Whitespace is ignored with set options split across multiple lines (#221).
Bug Fixes
Remove D413 from the google convention (#430).
Remove D413 from the pep257 convention (#404).
Replace semicolon with colon in D416 messages. (#409)
D301 (Use r""" if any backslashes in a docstring) does not trigger on backslashes for line continuation or unicode literals \u... and \N... anymore. These are considered intended elements of the docstring and thus should not be escaped by using a raw docstring (#365).
Fix decorator parsing (#411).
Google-style sections no longer cause false errors when used with Numpy-style sections (#388, #424).
D202: Allow a blank line after function docstring when followed by declaration of an inner function or class (#395, #426).
Fix D401 and D404 checks not working for docstrings containing only one word and ending with non-alpha character (#421)
D401: Fixed a false positive where one stem had multiple imperative forms, e.g., init and initialize / initiate (#382).
Bug Fixes
D401: Fixed a false positive where one stem had multiple imperative forms, e.g., init and initialize / initiate (#382).
Fix parser hanging when there's a comment directly after __all__ (#391, #366).
Fixed RST error in table which resulted in the online documentation missing the violation code table (#396).
Fixed IndentationError when parsing function arguments (#392).
Support for Python 2.x and PyPy has been dropped (#340).
Major Updates
Support for Python 2.x and PyPy has been dropped (#340).
Added initial support for Google convention (#357).
New Features
Added pre-commit hook (#346)
Bug Fixes
Fix parsing tuple syntax __all__ (#355, #352).
Support for Python 3.3 has been dropped (#315, #316).
Major Updates
Support for Python 3.3 has been dropped (#315, #316).
Added support for Python 3.7 (#324).
New features
Violations are now reported on the line where the docstring starts, not the line of the def/class it corresponds to (#238, #83).
Updated description of pep257 and numpy conventions (#300).
__all__ parsing is now done on a best-effort basis - if __all__ can't be statically determined, it will be ignored (#320, #313).
Bug Fixes
Fixed a false-positive recognition of section names causing D405 to be reported (#311, #317).
Fixed a bug where functions that don't end with a newline will sometimes raise an exception (#321, #336).
Changed wheel configuration to be NOT universal, as #281 added configparser as a dependency for Python 2.7.
Bug Fixes
Changed wheel configuration to be NOT universal, as #281 added configparser as a dependency for Python 2.7.
Updated usage documentation.
Public nested classes missing a docstring are now reported as D106 instead of D101 (#198, #261).
New Features
Public nested classes missing a docstring are now reported as D106 instead of D101 (#198, #261).
__init__ methods missing a docstring are now reported as D107 instead of D102 (#273, #277).
Added support for Python 3.6 (#270).
Specifying an invalid error code prefix (e.g., --select=D9) will print a warning message to stderr (#253, #279).
Configuration files now support multiple-lined entries (#250, #281).
Improved description of how error selection works in the help section (#231, #283).
Bug Fixes
Fixed an issue where the --source flag would result in improperly spaced output (#256, #257, #260).
Fixed an issue where if a first word in a docstring had Unicode characters and the docstring was not a unicode string, an exception would be raised (#258, #264).
Configuration files that were specified by CLI and don't contain a valid section name will now issue a warning to stderr (#276, #280).
Removed D107 from the numpy convention (#288).
Support for numpy conventions verification has been added (#129, #226). Support for Python 2.6 has been dropped (#206, #217). Support for PyPy3 has be
Support for numpy conventions verification has been added (#129, #226). Support for Python 2.6 has been dropped (#206, #217). Support for PyPy3 has been temporarily dropped, until it will be equivalent to CPython 3.3+ and supported by pip (#223). Support for the pep257 console script has been dropped. Only the pydocstyle console script should be used (#216, #218). Errors are now printed to stdout instead of stderr (#201, #210).
Decorator-based skipping via --ignore-decorators has been added (#204). Support for using pycodestyle style wildcards has been added (#72, #209). Superfluous opening quotes are now reported as part of D300 (#166, #225). Fixed a false-positive recognition of D410 and added D412 (#230, #233). Added --config=<path> flag to override the normal config file discovery and choose a specific config file (#117, #247). Support for specifying error codes with partial prefix has been added, e.g., --select=D101,D2 (#72, #209). All configuration file can now have the .ini extension (#237). Added better imperative mood checks using third party stemmer (#235, #68).
Made parser more robust to bad source files (#168, #214) Modules are now considered private if their name starts with a single underscore. This is a bugfix where “public module” (D100) was reported regardless of module name (#199, #222). Removed error when all is a list (#62, #227). Fixed a bug where the @ sign was used as a matrix multiplication operator in Python 3.5, but was considered a decorator by the parser (#246, #191).
Fixed an issue where the flake8-docstrings failed when accessing some public API from pydocstyle.
flake8-docstrings failed when accessing some public API from pydocstyle.pydocstyle is no longer a single file. This might make it difficult for some users to just add it to their project, but the project has reached certai
The project was renamed to pydocstyle and the new release will be 1.0.0!
Major Updates
The project was renamed to pydocstyle and the new release will be 1.0.0!
New Features
Added support for Python 3.5 (#145).
Classes nested inside classes are no longer considered private. Nested classes are considered public if their names are not prepended with an underscore and if their parent class is public, recursively (#13, #146).
Added the D403 error code - "First word of the first line should be properly capitalized". This new error is turned on by default (#164, #165, #170).
Added support for .pydocstylerc and as configuration file name (#140, #173).
Bug Fixes
Fixed an issue where a NameError was raised when parsing complex definitions of __all__ (#142, #143).
Fixed a bug where D202 was falsely reported when a function with just a docstring and no content was followed by a comment (#165).
Fixed wrong __all__ definition in main module (#150, #156).
Fixed a bug where an AssertionError could occur when parsing __future__ imports (#154).
Note
Versions documented below are before renaming the project from pep257 to pydocstyle.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →