NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #488 most downloaded on PyPI
the modular source code checker: pep8 pyflakes and co
Last release 11 days ago
23 Sep 2026
Ships fairly regularly
a new release about every 5 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
16 years old
96 releases · first in 2010
You can view the 7.4.1 milestone_ on GitHub for more details.
You can view the 7.4.1 milestone on GitHub for more details.
Fix --builtins (regressed in 7.4.0) (See also 2057, 2056).
You can view the 7.4.0 milestone_ on GitHub for more details.
You can view the 7.4.0 milestone on GitHub for more details.
Drop support for python 3.10 (See also 2001).
pycodestyle has been updated to >= 2.15.0, < 2.16.0 (See also 2053).
Pyflakes has been updated to >= 4.0.0, < 4.1.0 (See also 2054).
Added support for python 3.15 (See also 2055).
One column per quarter.
You can view the 7.3.0 milestone_ on GitHub for more details.
You can view the 7.3.0 milestone on GitHub for more details.
Added support for python 3.14 (See also 1983).
pycodestyle has been updated to >= 2.14.0, < 2.15.0 (See also 1985).
Pyflakes has been updated to >= 3.4.0, < 3.5.0 (See also 1985).
You can view the 7.2.0 milestone_ on GitHub for more details.
You can view the 7.2.0 milestone on GitHub for more details.
pycodestyle has been updated to >= 2.13.0, < 2.14.0 (See also 1974).
pyflakes has been updated to >= 3.3.0, < 3.4.0 (See also 1974).
Require python >= 3.9 (See also 1973).
You can view the 7.1.2 milestone_ on GitHub for more details.
You can view the 7.1.2 milestone on GitHub for more details.
Avoid starting unnecessary processes when "# files" < "jobs". (See also 1966).
You can view the 7.1.1 milestone_ on GitHub for more details.
You can view the 7.1.1 milestone on GitHub for more details.
Properly preserve escaped { and } in fstrings in logical lines in 3.12+. (See also 1948, 1949).
You can view the 7.1.0 milestone_ on GitHub for more details.
You can view the 7.1.0 milestone on GitHub for more details.
pycodestyle has been updated to >= 2.12.0, < 2.13.0 (See also 1939).
Backwards Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can view the 7.0.0 milestone on GitHub for more details.
Remove --include-in-doctest and --exclude-from-doctest options. (See also 1747, 1854)
Pyflakes has been updated to >= 3.2.0, < 3.3.0 (See also 1906).
Deprecate --include-in-doctest, --exclude-from-doctest (See also 1747, 1768).
You can view the 6.1.0 milestone on GitHub for more details.
Pyflakes has been updated to >= 3.1.0, < 3.2.0 (See also 1847).
pycodestyle has been updated to >= 2.11.0, < 2.12.0 (See also 1848).
Deprecate --include-in-doctest, --exclude-from-doctest (See also 1747, 1768).
Add support for python 3.12 (See also 1832, 1849, 1850).
Backwards Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can view the 6.0.0 milestone on GitHub for more details.
Remove --diff option (See also 1389, 1720).
Produce an error when invalid codes are specified in configuration (See also 1689, 1713).
Produce an error if the file specified in --extend-config does not exist (See also 1729, 1732).
Remove optparse compatibility support (See also 1739).
pycodestyle has been updated to >= 2.10.0, < 2.11.0 (See also 1746).
Pyflakes has been updated to >= 3.0.0, < 3.1.0 (See also 1748).
Require python >= 3.8.1 (See also 1633, 1741).
List available formatters in for --format option in --help (See also 223, 1624).
Improve multiprocessing performance (See also 1723).
Enable multiprocessing on non-fork platforms (See also 1723).
Ensure results are sorted when discovered from files (See also 1670, 1726).
You can view the 5.0.4 milestone_ on GitHub for more details.
You can view the 5.0.4 milestone on GitHub for more details.
Set a lower bound on importlib-metadata to prevent RecursionError (See also 1650, 1653).
You can view the 5.0.3 milestone_ on GitHub for more details.
You can view the 5.0.3 milestone on GitHub for more details.
Work around partial reads of configuration files with syntax errors (See also 1647, 1648).
You can view the 5.0.2 milestone_ on GitHub for more details.
You can view the 5.0.2 milestone on GitHub for more details.
Fix execution on python == 3.8.0 (See also 1637, 1641).
Fix config discovery when home does not exist (See also 1640, 1642).
You can view the 5.0.1 milestone_ on GitHub for more details.
You can view the 5.0.1 milestone on GitHub for more details.
Fix duplicate plugin discovery on misconfigured pythons (See also 1627, 1631).
Backwards Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can view the 5.0.0 milestone on GitHub for more details.
Remove indent_size_str (See also 1411).
Remove some dead code (See also 1453, 1540, 1541).
Missing explicitly-specified configuration is now an error (See also 1497, 1498).
Always read configuration files as UTF-8 (See also 1532, 1533).
Remove manpage from docs -- use help2man or related tools instead (See also 1557).
Forbid invalid plugin codes (See also 325, 1579).
Deprecate --diff option (See also 1389, 1441).
pycodestyle has been updated to >= 2.9.0, < 2.10.0 (See also 1626).
Pyflakes has been updated to >= 2.5.0, < 2.6.0 (See also 1625).
mccabe has been updated to >= 0.7.0, < 0.8.0 (See also 1542).
Add colors to output, configurable via --color (See also 1379, 1440).
Add .nox to the default exclude list (See also 1442, 1443).
Don't consider a config file which does not contain flake8 settings (See also 199, 1472).
Duplicate local-plugins names are now allowed (See also 362, 1504).
Consider . to be a path in config files (See also 1494, 1508)
Add --require-plugins option taking distribution names (See also 283, 1535).
Improve performance by removing debug logs (See also 1537, 1544).
Include failing file path in plugin execution error (See also 265, 1543).
Improve performance by pre-generating a pycodestyle plugin (See also 1545).
Properly differentiate between explicitly ignored / selected and default ignored / selected options (See also 284, 1576, 1609).
Fix physical line plugins not receiving all lines in the case of triple-quoted strings (See also 1534, 1536).
Fix duplicate error logging in the case of plugin issues (See also 1538).
Fix inconsistent ordering of --ignore in --help (See also 1550, 1552).
Fix memory leak of style guides by avoiding @lru_cache of a method (See also 1573).
Fix ignoring of configuration files exactly in the home directory (See also 1617, 1618).
You can view the 4.0.1 milestone_ on GitHub for more details.
You can view the 4.0.1 milestone on GitHub for more details.
Fix parallel execution collecting a SyntaxError (See also 1410 1408).
Backwards Incompatible Changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can view the 4.0.0 milestone on GitHub for more details.
Remove --install-hook vcs integration (See also 1008).
Remove setuptools command (See also 1009).
Migrate from GitLab to GitHub (See also 1305).
Due to constant confusion by users, user-level |Flake8| configuration files are no longer supported. Files will not be searched for in the user's home directory (e.g., ~/.flake8) nor in the XDG config directory (e.g., ~/.config/flake8). (See also 1404).
pycodestyle has been updated to >= 2.8.0, < 2.9.0 (See also 1406).
Pyflakes has been updated to >= 2.4.0, < 2.5.0 (See also 1406).
flake8 requires python >= 3.6 (See also 1010).
Add --extend-select option (See also 1312 1061).
Automatically create directories for output files (See also 1329).
ast parse before tokenizing to improve SyntaxError errors (See also 1320 740).
Fix warning in --indent-size argparse help (See also 1367).
Fix handling SyntaxError in python 3.10+ (See also 1374 1372).
Fix writing non-cp1252-encodable when output is piped on windows (See also 1382 1381).
indent_size_str is deprecated, use str(indent_size) instead (See also 1328, 1327).
You can view the 3.9.2 milestone on GitHub for more details.
Fix error message for E111 in pycodestyle (See also 1328, 1327).
indent_size_str is deprecated, use str(indent_size) instead (See also 1328, 1327).
You can view the 3.9.1 milestone_ on GitHub for more details.
You can view the 3.9.1 milestone on GitHub for more details.
Fix codes being ignored by plugins utilizing extend_default_ignore (See also 1317)
You can view the 3.9.0 milestone_ on GitHub for more details.
You can view the 3.9.0 milestone on GitHub for more details.
Pyflakes has been updated to >= 2.3.0, < 2.4.0 (See also 1006)
pycodestyle has been updated to >= 2.7.0, < 2.8.0 (See also 1007)
Drop support for python 3.4 (See also 1283)
Add --no-show-source option to disable --show-source (See also 995)
Fix handling of crlf line endings when linting stdin (See also 1002)
You can view the 3.8.4 milestone_ on GitHub for more details.
You can view the 3.8.4 milestone on GitHub for more details.
Fix multiprocessing errors on platforms without sem_open syscall. (See also 1282)
Fix skipping of physical checks on the last line of a file which does not end in a newline (See also 997)
You can view the 3.8.3 milestone_ on GitHub for more details.
You can view the 3.8.3 milestone on GitHub for more details.
Also catch SyntaxError when tokenizing (See also 992, 747)
Fix --jobs default display in flake8 --help (See also 1272, 750)
You can view the 3.8.2 milestone_ on GitHub for more details.
You can view the 3.8.2 milestone on GitHub for more details.
Improve performance by eliminating unnecessary sort (See also 991)
Improve messaging of --jobs argument by utilizing argparse (See also 1269, 1110)
Fix file configuration options to be relative to the config passed on the command line (See also 442, 736)
Fix incorrect handling of --extend-exclude by treating its values as files (See also 1271, 738)
You can view the 3.8.1 milestone_ on GitHub for more details.
You can view the 3.8.1 milestone on GitHub for more details.
Fix --output-file (regression in 3.8.0) (See also 990, 725)
Add deprecation message for vcs hooks (See also 985, 296)
You can view the 3.8.0 milestone on GitHub for more details.
Fix logical checks which report positions out of bounds (See also 987, 723)
Fix --exclude=.* accidentally matching . and .. (See also 441, 360)
Add deprecation message for vcs hooks (See also 985, 296)
You can view the 3.8.0 milestone on GitHub for more details.
Fix type="str" optparse options (See also 984)
You can view the 3.8.0 milestone on GitHub for more details.
Remove dependency on entrypoints and add dependency on importlib-metadata (only for python<3.8) (See also 1297, 297)
Pyflakes has been updated to >= 2.2.0, < 2.3.0 (See also 982)
pycodestyle has been updated to >= 2.6.0a1, < 2.7.0 (See also 983)
Add --extend-exclude option to add to --exclude without overwriting (See also 1211, 1091)
Move argument parsing from optparse to argparse (See also 939
Group plugin options in --help (See also 1219, 294)
Remove parsing of verbose from configuration files as it was not consistently applied (See also 1245, 245)
Remove parsing of output_file from configuration files as it was not consistently applied (See also 1246)
Resolve configuration files relative to cwd instead of common prefix of passed filenames. You may need to change flake8 subproject to cd subproject && flake8 . (See also 952)
Officially support python3.8 (See also 963)
--disable-noqa now also disables # flake8: noqa (See also 1296, 318)
Ensure that a missing file produces a E902 error (See also 1262, 328)
# noqa comments now apply to all of the lines in an explicit \ continuation or in a line continued by a multi-line string (See also 1266, 621)
Fix --exclude=./t.py to only match t.py at the top level (See also 1208, 628)
Fix --show-source when a file is indented with tabs (See also 1218, 719)
Fix crash when --max-line-length is given a non-integer (See also 939, 704)
Prevent flip-flopping of indent_char causing extra E101 errors (See also 949, pycodestyle#886)
Only enable multiprocessing when the method is fork fixing issues on macos with python3.8+ (See also 955, 315) (note: this fix also landed in 3.7.9)
noqa is now only handled by flake8 fixing specific-noqa. Plugins requesting this parameter will always receive False (See also 1214, 1104)
Fix duplicate loading of plugins when invoked via python -m flake8 (See also 1297)
Fix early exit when --exit-zero and --diff are provided and the diff is empty (See also 970)
Consistently split lines when \f is present when reading from stdin (See also 976, 202)
python setup.py flake8 (setuptools integration) is now deprecated and will be removed in a future version (See also 935, 1098)
type='string' (optparse) types are deprecated, use type=callable (argparse) instead. Support for type='string' will be removed in a future version (See also 939)
%default in plugin option help text is deprecated, use %(default)s instead. Support for %default will be removed in a future version (See also 939)
optparse-style action='callback' setting for options is deprecated, use argparse action classes instead. This will be removed in a future version (See also 939)
Nothing published for this version
Nothing published for this version
You can view the 3.7.9 milestone_ on GitHub for more details.
You can view the 3.7.9 milestone on GitHub for more details.
Disable multiprocessing when the multiprocessing method is spawn (such as on macos in python3.8) (See also 956, 315)
You can view the 3.7.8 milestone_ on GitHub for more details.
You can view the 3.7.8 milestone on GitHub for more details.
Fix handling of Application.parse_preliminary_options_and_args when argv is an empty list (See also 1303, 694)
Fix crash when a file parses but fails to tokenize (See also 1210, 1088)
Log the full traceback on plugin exceptions (See also 926)
Fix # noqa: ... comments with multi-letter codes (See also 931, 1101)
You can view the 3.7.7 milestone_ on GitHub for more details.
You can view the 3.7.7 milestone on GitHub for more details.
Fix crashes in plugins causing flake8 to hang while unpickling errors (See also 1206, 681)
You can view the 3.7.6 milestone_ on GitHub for more details.
You can view the 3.7.6 milestone on GitHub for more details.
Fix --per-file-ignores for multi-letter error codes (See also 1203, 683)
Improve flake8 speed when only 1 filename is passed (See also 1204)
You can view the 3.7.5 milestone_ on GitHub for more details.
You can view the 3.7.5 milestone on GitHub for more details.
Fix reporting of pyflakes "referenced before assignment" error (See also 923, 679)
You can view the 3.7.4 milestone_ on GitHub for more details.
You can view the 3.7.4 milestone on GitHub for more details.
Fix performance regression with lots of per-file-ignores and errors (See also 922, 677)
You can view the 3.7.3 milestone_ on GitHub for more details.
You can view the 3.7.3 milestone on GitHub for more details.
Fix imports of typing in python 3.5.0 / 3.5.1 (See also 1199, 674)
Fix flake8 --statistics (See also 920, 675)
Gracefully ignore flake8-per-file-ignores plugin if installed (See also 1201, 671)
Improve error message for malformed per-file-ignores (See also 921, 288)
You can view the 3.7.2 milestone_ on GitHub for more details.
You can view the 3.7.2 milestone on GitHub for more details.
Fix broken flake8 --diff (regressed in 3.7.0) (See also 919, 667)
Fix typo in plugin exception reporting (See also 908, 668)
Fix AttributeError while attempting to use the legacy api (regressed in 3.7.0) (See also 1198, 673)
You can view the 3.7.1 milestone_ on GitHub for more details.
You can view the 3.7.1 milestone on GitHub for more details.
Fix capitalized filenames in per-file-ignores setting (See also 917, 287)
You can view the 3.7.0 milestone_ on GitHub for more details.
You can view the 3.7.0 milestone on GitHub for more details.
Add dependency on entrypoints >= 0.3, < 0.4 (See also 897, 1197)
Pyflakes has been updated to >= 2.1.0, < 2.2.0 (See also 912, 913)
pycodestyle has been updated to >= 2.5.0, < 2.6.0 (See also 915)
Add support for per-file-ignores (See also 892, 511, 911, 277)
Enable use of float and complex option types (See also 894, 258)
Improve startup performance by switching from pkg_resources to entrypoints (See also 897)
Add metadata for use through the pre-commit git hooks framework (See also 901, 1196)
Allow physical line checks to return more than one result (See also 902)
Allow # noqa:X123 comments without space between the colon and codes list (See also 906, 276)
Remove broken and unused flake8.listen plugin type (See also 907, 663)
Fix DeprecationWarning due to import of abc classes from the collections module (See also 887)
You can view the 3.6.0 milestone on GitHub for more details.
pycodestyle has been updated to >= 2.4.0, < 2.5.0 (See also 1068, 652, 869, 881, 1239)
Pyflakes has been updated to >= 2.0.0, < 2.1.0 (See also 655, 883)
flake8 requires python 2.x >= 2.7 or python 3.x >= 3.4 (See also 876)
Add paths to allow local plugins to exist outside of sys.path (See also 1067, 1237)
Copy setup.cfg files to the temporary git hook execution directory (See also 1299)
Only skip a file if # flake8: noqa is on a line by itself (See also 259, 873)
Provide a better user experience for broken plugins (See also 1178)
Report E902 when a file passed on the command line does not exist (See also 645, 878)
Add --extend-ignore for extending the default ignore instead of overriding it (See also 1061, 1180)
Respect a formatter's newline setting when printing (See also 1238)
Fix leaking of processes in the legacy api (See also 650, 879)
Fix a SyntaxWarning for an invalid escape sequence (See also 1186)
Fix DeprecationWarning due to import of abc classes from the collections module (See also 887)
Defer setuptools import to improve flake8 startup time (See also 1190)
Fix inconsistent line endings in FileProcessor.lines when running under python 3.x (See also 263, 889)
You can view the 3.5.0 milestone_ on GitHub for more details.
You can view the 3.5.0 milestone on GitHub for more details.
Allow for PyFlakes 1.6.0 (See also 1058)
Start using new PyCodestyle checks for bare excepts and ambiguous identifier (See also 611)
Print out information about configuring VCS hooks (See also 586)
Allow users to develop plugins "local" to a repository without using setuptools. See our documentation on local plugins for more information. (See also 608)
Catch and helpfully report UnicodeDecodeErrors when parsing configuration files. (See also 609)
You can view the 3.4.1 milestone_ on GitHub for more details.
You can view the 3.4.1 milestone on GitHub for more details.
Fix minor regression when users specify only a --select list with items in the enabled/extended select list. (See also 605)
You can view the 3.4.0 milestone_ on GitHub for more details.
You can view the 3.4.0 milestone on GitHub for more details.
Refine logic around --select and --ignore when combined with the default values for each. (See also 572)
Handle spaces as an alternate separate for error codes, e.g., --ignore 'E123 E234'. (See also 580)
Filter out empty select and ignore codes, e.g., --ignore E123,,E234. (See also 581)
Specify dependencies appropriately in setup.py (See also 592)
Fix bug in parsing --quiet and --verbose from config files. (See also 1169)
Remove unused import of os in the git hook template (See also 1170)
You can view the 3.3.0 milestone_ on GitHub for more details.
You can view the 3.3.0 milestone on GitHub for more details.
Add support for Python 3.6 (via dependencies). Note Flake8 does not guarantee that all plugins will support Python 3.6.
Added unique error codes for all missing PyFlakes messages. (14 new codes, see "Error / Violation Codes")
Dramatically improve the performance of Flake8. (See also 829)
Display the local file path instead of the temporary file path when using the git hook. (See also 176)
Add methods to Report class that will be called when Flake8 starts and finishes processing a file. (See also 183)
Fix problem where hooks should only check *.py files. (See also 200)
Fix handling of SyntaxErrors that do not include physical line information. (See also 542)
Update upper bound on PyFlakes to allow for PyFlakes 1.5.0. (See also 549)
Update setuptools integration to less eagerly deduplicate packages. (See also 552)
Force flake8 --version to be repeatable between invocations. (See also 554)
Nothing published for this version
You can view the 3.2.1 milestone_ on GitHub for more details.
You can view the 3.2.1 milestone on GitHub for more details.
Fix subtle bug when deciding whether to report an on-by-default's violation (See also 189)
Fix another bug around SyntaxErrors not being reported at the right column and row (See also 191 and 169 for a related, previously fixed bug)
Fix regression from 2.x where we run checks against explicitly provided files, even if they don't match the filename patterns. (See also 198)
You can view the 3.2.0 milestone_ on GitHub for more details.
You can view the 3.2.0 milestone on GitHub for more details.
Allow for pycodestyle 2.2.0 which fixes a bug in E305 (See also 188)
You can view the 3.1.1 milestone_ on GitHub for more details.
You can view the 3.1.1 milestone on GitHub for more details.
Do not attempt to install/distribute a man file with the Python package; leave this for others to do. (See also 186)
Fix packaging bug where wheel version constraints specified in setup.cfg did not match the constraints in setup.py. (See also 187)
You can view the 3.1.0 milestone_ on GitHub for more details.
You can view the 3.1.0 milestone on GitHub for more details.
Add --bug-report flag to make issue reporters' lives easier.
Collect configuration files from the current directory when using our Git hook. (See also 142, 150, 155)
Avoid unhandled exceptions when dealing with SyntaxErrors. (See also 146, 170)
Exit early if the value for --diff is empty. (See also 158)
Handle empty --stdin-display-name values. (See also 167)
Properly report the column number of Syntax Errors. We were assuming that all reports of column numbers were 0-indexed, however, SyntaxErrors report the column number as 1-indexed. This caused us to report a column number that was 1 past the actual position. Further, when combined with SyntaxErrors that occur at a newline, this caused the position to be visually off by two. (See also 169)
Fix the behaviour of --enable-extensions. Previously, items specified here were still ignored due to the fact that the off-by-default extension codes were being left in the ignore list. (See also 171)
Fix problems around --select and --ignore behaviour that prevented codes that were neither explicitly selected nor explicitly ignored from being reported. (See also 174)
Truly be quiet when the user specifies -q one or more times. Previously, we were showing the if the user specified -q and --show-source. We have fixed this bug. (See also 177)
Add new File Processor attribute, previous_unindented_logical_line to accommodate pycodestyle 2.1.0. (See also 178)
When something goes wrong, exit non-zero. (See also 180, 141)
Add --tee as an option to allow use of --output-file and printing to standard out.
Allow the git plugin to actually be lazy when collecting files.
Allow for pycodestyle 2.1 series and pyflakes 1.3 series.
Side-step a Pickling Error when using Flake8 with multiprocessing on Unix systems. (See also 1014)
Side-step a Pickling Error when using Flake8 with multiprocessing on Unix systems. (See also 1014)
Fix an Attribute Error raised when dealing with Invalid Syntax. (See also 539)
Fix an unhandled Syntax Error when tokenizing files. (See also 540)
Disable --jobs for any version of Python on Windows. (See also this Python bug report_)
Disable --jobs for any version of Python on Windows. (See also this Python bug report)
Raise exception when entry_point in plugin not callable. This raises an informative error when a plugin fails to load because its entry_point is not callable, which can happen with a plugin which is buggy or not updated for the current version of flake8. This is nicer than raising a PicklingError about failing to pickle a module (See also 1014)
Fix # noqa comments followed by a : and explanation broken by 3.0.0 (See also 1025)
Always open our output file in append mode so we do not overwrite log messages. (See also 535)
When normalizing path values read from configuration, keep in context the directory where the configuration was found so that relative paths work. (See also 1036)
Fix issue where users were unable to ignore plugin errors that were on by default. (See also 1037)
Fix our legacy API StyleGuide's init_report method to actually override the previous formatter. (See also 136)
Fix local config file discovery. (See also 528)
Fix local config file discovery. (See also 528)
Fix indexing of column numbers. We accidentally were starting column indices at 0 instead of 1.
Fix regression in handling of errors like E402 that rely on a combination of attributes. (See also 530)
Nothing published for this version
Nothing published for this version
Fix regression in handling of # noqa for multiline strings. (See also 1024)
Fix regression in handling of # noqa for multiline strings. (See also 1024)
Fix regression in handling of --output-file when not also using --verbose. (See also 1026)
Fix regression in handling of --quiet. (See also 1026)
Fix regression in handling of --statistics. (See also 1026)
Rewrite our documentation from scratch!
Rewrite our documentation from scratch! (https://flake8.pycqa.org)
Drop explicit support for Pythons 2.6, 3.2, and 3.3.
Remove dependence on pep8/pycodestyle for file processing, plugin dispatching, and more. We now control all of this while keeping backwards compatibility.
--select and --ignore can now both be specified and try to find the most specific rule from each. For example, if you do --select E --ignore E123 then we will report everything that starts with E except for E123. Previously, you would have had to do --ignore E123,F,W which will also still work, but the former should be far more intuitive.
Add support for in-line # noqa comments to specify only the error codes to be ignored, e.g., # noqa: E123,W503
Add entry-point for formatters as well as a base class that new formatters can inherit from. See the documentation for more details.
Add detailed verbose output using the standard library logging module.
Enhance our usage of optparse for plugin developers by adding new parameters to the add_option that plugins use to register new options.
Update --install-hook to require the name of version control system hook you wish to install a Flake8.
Stop checking sub-directories more than once via the setuptools command
When passing a file on standard-in, allow the caller to specify --stdin-display-name so the output is properly formatted
The Git hook now uses sys.executable to format the shebang line. This allows Flake8 to install a hook script from a virtualenv that points to that virtualenv's Flake8 as opposed to a global one (without the virtualenv being sourced).
Print results in a deterministic and consistent ordering when used with multiprocessing
When using --count, the output is no longer written to stderr.
AST plugins can either be functions or classes and all plugins can now register options so long as there are callable attributes named as we expect.
Stop forcibly re-adding .tox, .eggs, and *.eggs to --exclude. Flake8 2.x started always appending those three patterns to any exclude list (including the default and any user supplied list). Flake8 3 has stopped adding these in, so you may see errors when upgrading due to these patterns no longer being forcibly excluded by default if you have your own exclude patterns specified.
To fix this, add the appropriate patterns to your exclude patterns list.
Note
This item was added in November of 2016, as a result of a bug report.
Nothing published for this version
Nothing published for this version
Bug Fix packaging error during release process.
Bug Fix packaging error during release process.
Bug Update the config files to search for to include setup.cfg and tox.ini. This was broken in 2.5.5 when we stopped passing config_file to our Style
Bug Update the config files to search for to include setup.cfg and tox.ini. This was broken in 2.5.5 when we stopped passing config_file to our Style Guide
Requirements Change Switch to pycodestyle as all future pep8 releases will use that package name
Requirements Change Switch to pycodestyle as all future pep8 releases will use that package name
Improvement Allow for Windows users on select versions of Python to use --jobs and multiprocessing
Improvement Update bounds on McCabe
Improvement Update bounds on PyFlakes and blacklist known broken versions
Improvement Handle new PyFlakes warning with a new error code: F405
Bug Fix setuptools integration when parsing config files
Bug Fix setuptools integration when parsing config files
Bug Don't pass the user's config path as the config_file when creating a StyleGuide
Your coding agent can read these notes before it upgrades. Set up the MCP server →