3.8.0 – 2020-05-11

You can view the 3.8.0 milestone on GitHub for more details.

Bugs Fixed

  • Fix logical checks which report positions out of bounds (See also #987, #723)

  • Fix --exclude=.* accidentally matching . and .. (See also #441, #360)

Deprecations

  • Add deprecation message for vcs hooks (See also #985, #296)

3.8.0a2 – 2020-04-24

You can view the 3.8.0 milestone on GitHub for more details.

Bugs Fixed

  • Fix type="str" optparse options (See also #984)

3.8.0a1 – 2020-04-24

You can view the 3.8.0 milestone on GitHub for more details.

New Dependency Information

  • 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)

Features

  • 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)

Bugs Fixed

  • 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)

Deprecations

  • 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)