This PR pins pycodestyle to the latest release 2.5.0.
Changelog
### 2.5.0
```
------------------
New checks:
* E117: Over-indented code blocks
* W505: Maximum doc-string length only when configured with --max-doc-length
Changes:
* Remove support for EOL Python 2.6 and 3.3. PR 720.
* Add E117 error for over-indented code blocks.
* Allow W605 to be silenced by ` noqa` and fix the position reported by W605
* Allow users to omit blank lines around one-liner definitions of classes and
functions
* Include the function return annotation (``->``) as requiring surrounding
whitespace only on Python 3
* Verify that only names can follow ``await``. Previously we allowed numbers
and strings.
* Add support for Python 3.7
* Fix detection of annotated argument defaults for E252
* Cprrect the position reported by W504
```
### 2.4.0
```
------------------
New checks:
* Add W504 warning for checking that a break doesn't happen after a binary
operator. This check is ignored by default. PR 502.
* Add W605 warning for invalid escape sequences in string literals. PR 676.
* Add W606 warning for 'async' and 'await' reserved keywords being introduced
in Python 3.7. PR 684.
* Add E252 error for missing whitespace around equal sign in type annotated
function arguments with defaults values. PR 717.
Changes:
* An internal bisect search has replaced a linear search in order to improve
efficiency. PR 648.
* pycodestyle now uses PyPI trove classifiers in order to document supported
python versions on PyPI. PR 654.
* 'setup.cfg' '[wheel]' section has been renamed to '[bdist_wheel]', as
the former is legacy. PR 653.
* pycodestyle now handles very long lines much more efficiently for python
3.2+. Fixes 643. PR 644.
* You can now write 'pycodestyle.StyleGuide(verbose=True)' instead of
'pycodestyle.StyleGuide(verbose=True, paths=['-v'])' in order to achieve
verbosity. PR 663.
* The distribution of pycodestyle now includes the license text in order to
comply with open source licenses which require this. PR 694.
* 'maximum_line_length' now ignores shebang ('!') lines. PR 736.
* Add configuration option for the allowed number of blank lines. It is
implemented as a top level dictionary which can be easily overwritten. Fixes
732. PR 733.
Bugs:
* Prevent a 'DeprecationWarning', and a 'SyntaxError' in future python, caused
by an invalid escape sequence. PR 625.
* Correctly report E501 when the first line of a docstring is too long.
Resolves 622. PR 630.
* Support variable annotation when variable start by a keyword, such as class
variable type annotations in python 3.6. PR 640.
* pycodestyle internals have been changed in order to allow 'python3 -m
cProfile' to report correct metrics. PR 647.
* Fix a spelling mistake in the description of E722. PR 697.
* 'pycodestyle --diff' now does not break if your 'gitconfig' enables
'mnemonicprefix'. PR 706.
```
### 2.3.1
```
------------------
Bugs:
* Fix regression in detection of E302 and E306; 618, 620
```
### 2.3.0
```
------------------
New Checks:
* Add E722 warning for bare ``except`` clauses
* Report E704 for async function definitions (``async def``)
Bugs:
* Fix another E305 false positive for variables beginning with "class" or
"def"
* Fix detection of multiple spaces between ``async`` and ``def``
* Fix handling of variable annotations. Stop reporting E701 on Python 3.6 for
variable annotations.
```
### 2.2.0
```
------------------
Announcements:
* Added Make target to obtain proper tarball file permissions; 599
Bugs:
* Fixed E305 regression caused by 400; 593
```
### 2.1.0
```
------------------
Announcements:
* Change all references to the pep8 project to say pycodestyle; 530
Changes:
* Report E302 for blank lines before an "async def"; 556
* Update our list of tested and supported Python versions which are 2.6, 2.7,
3.2, 3.3, 3.4 and 3.5 as well as the nightly Python build and PyPy.
* Report E742 and E743 for functions and classes badly named 'l', 'O', or 'I'.
* Report E741 on 'global' and 'nonlocal' statements, as well as prohibited
single-letter variables.
* Deprecated use of `[pep8]` section name in favor of `[pycodestyle]`; 591
* Report E722 when bare except clause is used; 579
Bugs:
* Fix opt_type AssertionError when using Flake8 2.6.2 and pycodestyle; 561
* Require two blank lines after toplevel def, class; 536
* Remove accidentally quadratic computation based on the number of colons. This
will make pycodestyle faster in some cases; 314
```
### 2.0.0
```
------------------
Announcements:
* Repository renamed to `pycodestyle`; Issue 466 / 481.
* Added joint Code of Conduct as member of PyCQA; 483
Changes:
* Added tox test support for Python 3.5 and pypy3
* Added check E275 for whitespace on `from ... import ...` lines; 489 / 491
* Added W503 to the list of codes ignored by default ignore list; 498
* Removed use of project level `.pep8` configuration file; 364
Bugs:
* Fixed bug with treating `~` operator as binary; 383 / 384
* Identify binary operators as unary; 484 / 485
```
### 1.7.0
```
------------------
Announcements:
* Repository moved to PyCQA Organization on GitHub:
https://github.com/pycqa/pep8
Changes:
* Reverted the fix in 368, "options passed on command line are only ones
accepted" feature. This has many unintended consequences in pep8 and flake8
and needs to be reworked when I have more time.
* Added support for Python 3.5. (Issue 420 & 459)
* Added support for multi-line config_file option parsing. (Issue 429)
* Improved parameter parsing. (Issues 420 & 456)
Bugs:
* Fixed BytesWarning on Python 3. (Issue 459)
```
### 1.6.2
```
------------------
Changes:
* Added check for breaking around a binary operator. (Issue 197, Pull 305)
Bugs:
* Restored config_file parameter in process_options(). (Issue 380)
```
### 1.6.1
```
------------------
Changes:
* Assign variables before referenced. (Issue 287)
Bugs:
* Exception thrown due to unassigned ``local_dir`` variable. (Issue 377)
```
### 1.6.0
```
------------------
News:
* Ian Lee <ianlee1521gmail.com> joined the project as a maintainer.
Changes:
* Report E731 for lambda assignment. (Issue 277)
* Report E704 for one-liner def instead of E701.
Do not report this error in the default configuration. (Issue 277)
* Replace codes E111, E112 and E113 with codes E114, E115 and E116
for bad indentation of comments. (Issue 274)
* Report E266 instead of E265 when the block comment starts with
multiple `. (Issue 270)
* Report E402 for import statements not at the top of the file. (Issue 264)
* Do not enforce whitespaces around ``**`` operator. (Issue 292)
* Strip whitespace from around paths during normalization. (Issue 339 / 343)
* Update ``--format`` documentation. (Issue 198 / Pull Request 310)
* Add ``.tox/`` to default excludes. (Issue 335)
* Do not report E121 or E126 in the default configuration. (Issues 256 / 316)
* Allow spaces around the equals sign in an annotated function. (Issue 357)
* Allow trailing backslash if in an inline comment. (Issue 374)
* If ``--config`` is used, only that configuration is processed. Otherwise,
merge the user and local configurations are merged. (Issue 368 / 369)
Bug fixes:
* Don't crash if Checker.build_tokens_line() returns None. (Issue 306)
* Don't crash if os.path.expanduser() throws an ImportError. (Issue 297)
* Missing space around keyword parameter equal not always reported, E251.
(Issue 323)
* Fix false positive E711/E712/E713. (Issues 330 and 336)
* Do not skip physical checks if the newline is escaped. (Issue 319)
* Flush sys.stdout to avoid race conditions with printing. See flake8 bug:
https://gitlab.com/pycqa/flake8/issues/17 for more details. (Issue 363)
```
### 1.5.7
```
------------------
Bug fixes:
* Skip the traceback on "Broken pipe" signal. (Issue 275)
* Do not exit when an option in ``setup.cfg`` or ``tox.ini``
is not recognized.
* Check the last line even if it does not end with a newline. (Issue 286)
* Always open files in universal newlines mode in Python 2. (Issue 288)
```
### 1.5.6
```
------------------
Bug fixes:
* Check the last line even if it has no end-of-line. (Issue 273)
```
### 1.5.5
```
------------------
Bug fixes:
* Fix regression with E22 checks and inline comments. (Issue 271)
```
### 1.5.4
```
------------------
Bug fixes:
* Fix negative offset with E303 before a multi-line docstring.
(Issue 269)
```
### 1.5.3
```
------------------
Bug fixes:
* Fix wrong offset computation when error is on the last char
of a physical line. (Issue 268)
```
### 1.5.2
```
------------------
Changes:
* Distribute a universal wheel file.
Bug fixes:
* Report correct line number for E303 with comments. (Issue 60)
* Do not allow newline after parameter equal. (Issue 252)
* Fix line number reported for multi-line strings. (Issue 220)
* Fix false positive E121/E126 with multi-line strings. (Issue 265)
* Fix E501 not detected in comments with Python 2.5.
* Fix caret position with ``--show-source`` when line contains tabs.
```
### 1.5.1
```
------------------
Bug fixes:
* Fix a crash with E125 on multi-line strings. (Issue 263)
```
### 1.5
```
----------------
Changes:
* Report E129 instead of E125 for visually indented line with same
indent as next logical line. (Issue 126)
* Report E265 for space before block comment. (Issue 190)
* Report E713 and E714 when operators ``not in`` and ``is not`` are
recommended. (Issue 236)
* Allow long lines in multiline strings and comments if they cannot
be wrapped. (Issue 224).
* Optionally disable physical line checks inside multiline strings,
using `` noqa``. (Issue 242)
* Change text for E121 to report "continuation line under-indented
for hanging indent" instead of indentation not being a
multiple of 4.
* Report E131 instead of E121 / E126 if the hanging indent is not
consistent within the same continuation block. It helps when
error E121 or E126 is in the ``ignore`` list.
* Report E126 instead of E121 when the continuation line is hanging
with extra indentation, even if indentation is not a multiple of 4.
Bug fixes:
* Allow the checkers to report errors on empty files. (Issue 240)
* Fix ignoring too many checks when ``--select`` is used with codes
declared in a flake8 extension. (Issue 216)
* Fix regression with multiple brackets. (Issue 214)
* Fix ``StyleGuide`` to parse the local configuration if the
keyword argument ``paths`` is specified. (Issue 246)
* Fix a false positive E124 for hanging indent. (Issue 254)
* Fix a false positive E126 with embedded colon. (Issue 144)
* Fix a false positive E126 when indenting with tabs. (Issue 204)
* Fix behaviour when ``exclude`` is in the configuration file and
the current directory is not the project directory. (Issue 247)
* The logical checks can return ``None`` instead of an empty iterator.
(Issue 250)
* Do not report multiple E101 if only the first indentation starts
with a tab. (Issue 237)
* Fix a rare false positive W602. (Issue 34)
```
### 1.4.6
```
------------------
Changes:
* Honor `` noqa`` for errors E711 and E712. (Issue 180)
* When both a ``tox.ini`` and a ``setup.cfg`` are present in the project
directory, merge their contents. The ``tox.ini`` file takes
precedence (same as before). (Issue 182)
* Give priority to ``--select`` over ``--ignore``. (Issue 188)
* Compare full path when excluding a file. (Issue 186)
* New option ``--hang-closing`` to switch to the alternative style of
closing bracket indentation for hanging indent. Add error E133 for
closing bracket which is missing indentation. (Issue 103)
* Accept both styles of closing bracket indentation for hanging indent.
Do not report error E123 in the default configuration. (Issue 103)
Bug fixes:
* Do not crash when running AST checks and the document contains null bytes.
(Issue 184)
* Correctly report other E12 errors when E123 is ignored. (Issue 103)
* Fix false positive E261/E262 when the file contains a BOM. (Issue 193)
* Fix E701, E702 and E703 not detected sometimes. (Issue 196)
* Fix E122 not detected in some cases. (Issue 201 and 208)
* Fix false positive E121 with multiple brackets. (Issue 203)
```
### 1.4.5
```
------------------
* When no path is specified, do not try to read from stdin. The feature
was added in 1.4.3, but it is not supported on Windows. Use ``-``
filename argument to read from stdin. This usage is supported
since 1.3.4. (Issue 170)
* Do not require ``setuptools`` in setup.py. It works around an issue
with ``pip`` and Python 3. (Issue 172)
* Add ``__pycache__`` to the ignore list.
* Change misleading message for E251. (Issue 171)
* Do not report false E302 when the source file has a coding cookie or a
comment on the first line. (Issue 174)
* Reorganize the tests and add tests for the API and for the command line
usage and options. (Issues 161 and 162)
* Ignore all checks which are not explicitly selected when ``select`` is
passed to the ``StyleGuide`` constructor.
```
### 1.4.4
```
------------------
* Report E227 or E228 instead of E225 for whitespace around bitwise, shift
or modulo operators. (Issue 166)
* Change the message for E226 to make clear that it is about arithmetic
operators.
* Fix a false positive E128 for continuation line indentation with tabs.
* Fix regression with the ``--diff`` option. (Issue 169)
* Fix the ``TestReport`` class to print the unexpected warnings and
errors.
```
### 1.4.3
```
------------------
* Hide the ``--doctest`` and ``--testsuite`` options when installed.
* Fix crash with AST checkers when the syntax is invalid. (Issue 160)
* Read from standard input if no path is specified.
* Initiate a graceful shutdown on ``Control+C``.
* Allow changing the ``checker_class`` for the ``StyleGuide``.
```
### 1.4.2
```
------------------
* Support AST checkers provided by third-party applications.
* Register new checkers with ``register_check(func_or_cls, codes)``.
* Allow constructing a ``StyleGuide`` with a custom parser.
* Accept visual indentation without parenthesis after the ``if``
statement. (Issue 151)
* Fix UnboundLocalError when using `` noqa`` with continued lines.
(Issue 158)
* Re-order the lines for the ``StandardReport``.
* Expand tabs when checking E12 continuation lines. (Issue 155)
* Refactor the testing class ``TestReport`` and the specific test
functions into a separate test module.
```
### 1.4.1
```
------------------
* Allow sphinx.ext.autodoc syntax for comments. (Issue 110)
* Report E703 instead of E702 for the trailing semicolon. (Issue 117)
* Honor `` noqa`` in addition to `` nopep8``. (Issue 149)
* Expose the ``OptionParser`` factory for better extensibility.
```
### 1.4
```
----------------
* Report E226 instead of E225 for optional whitespace around common
operators (``*``, ``**``, ``/``, ``+`` and ``-``). This new error
code is ignored in the default configuration because PEP 8 recommends
to "use your own judgement". (Issue 96)
* Lines with a `` nopep8`` at the end will not issue errors on line
length E501 or continuation line indentation E12*. (Issue 27)
* Fix AssertionError when the source file contains an invalid line
ending ``"\r\r\n"``. (Issue 119)
* Read the ``[pep8]`` section of ``tox.ini`` or ``setup.cfg`` if present.
(Issue 93 and 141)
* Add the Sphinx-based documentation, and publish it
on https://pycodestyle.readthedocs.io/. (Issue 105)
```
### 1.3.4
```
------------------
* Fix false positive E124 and E128 with comments. (Issue 100)
* Fix error on stdin when running with bpython. (Issue 101)
* Fix false positive E401. (Issue 104)
* Report E231 for nested dictionary in list. (Issue 142)
* Catch E271 at the beginning of the line. (Issue 133)
* Fix false positive E126 for multi-line comments. (Issue 138)
* Fix false positive E221 when operator is preceded by a comma. (Issue 135)
* Fix ``--diff`` failing on one-line hunk. (Issue 137)
* Fix the ``--exclude`` switch for directory paths. (Issue 111)
* Use ``-`` filename to read from standard input. (Issue 128)
```
### 1.3.3
```
------------------
* Fix regression with continuation line checker. (Issue 98)
```
### 1.3.2
```
------------------
* Revert to the previous behaviour for ``--show-pep8``:
do not imply ``--first``. (Issue 89)
* Add E902 for IO errors. (Issue 87)
* Fix false positive for E121, and missed E124. (Issue 92)
* Set a sensible default path for config file on Windows. (Issue 95)
* Allow ``verbose`` in the configuration file. (Issue 91)
* Show the enforced ``max-line-length`` in the error message. (Issue 86)
```
### 1.3.1
```
------------------
* Explain which configuration options are expected. Accept and recommend
the options names with hyphen instead of underscore. (Issue 82)
* Do not read the user configuration when used as a module
(except if ``config_file=True`` is passed to the ``StyleGuide`` constructor).
* Fix wrong or missing cases for the E12 series.
* Fix cases where E122 was missed. (Issue 81)
```
### 1.3
```
----------------
.. warning::
The internal API is backwards incompatible.
* Remove global configuration and refactor the library around
a ``StyleGuide`` class; add the ability to configure various
reporters. (Issue 35 and 66)
* Read user configuration from ``~/.config/pep8``
and local configuration from ``./.pep8``. (Issue 22)
* Fix E502 for backslash embedded in multi-line string. (Issue 68)
* Fix E225 for Python 3 iterable unpacking (PEP 3132). (Issue 72)
* Enable the new checkers from the E12 series in the default
configuration.
* Suggest less error-prone alternatives for E712 errors.
* Rewrite checkers to run faster (E22, E251, E27).
* Fixed a crash when parsed code is invalid (too many
closing brackets).
* Fix E127 and E128 for continuation line indentation. (Issue 74)
* New option ``--format`` to customize the error format. (Issue 23)
* New option ``--diff`` to check only modified code. The unified
diff is read from STDIN. Example: ``hg diff | pep8 --diff``
(Issue 39)
* Correctly report the count of failures and set the exit code to 1
when the ``--doctest`` or the ``--testsuite`` fails.
* Correctly detect the encoding in Python 3. (Issue 69)
* Drop support for Python 2.3, 2.4 and 3.0. (Issue 78)
```
### 1.2
```
----------------
* Add E121 through E128 for continuation line indentation. These
checks are disabled by default. If you want to force all checks,
use switch ``--select=E,W``. Patch by Sam Vilain. (Issue 64)
* Add E721 for direct type comparisons. (Issue 47)
* Add E711 and E712 for comparisons to singletons. (Issue 46)
* Fix spurious E225 and E701 for function annotations. (Issue 29)
* Add E502 for explicit line join between brackets.
* Fix E901 when printing source with ``--show-source``.
* Report all errors for each checker, instead of reporting only the
first occurrence for each line.
* Option ``--show-pep8`` implies ``--first``.
```
### 1.1
```
----------------
* Add E901 for syntax errors. (Issues 63 and 30)
* Add E271, E272, E273 and E274 for extraneous whitespace around
keywords. (Issue 57)
* Add ``tox.ini`` configuration file for tests. (Issue 61)
* Add ``.travis.yml`` configuration file for continuous integration.
(Issue 62)
```
### 1.0.1
```
------------------
* Fix inconsistent version numbers.
```
### 1.0
```
----------------
* Fix W602 ``raise`` to handle multi-char names. (Issue 53)
```
### 0.7.0
```
------------------
* Now ``--first`` prints only the first occurrence of each error.
The ``--repeat`` flag becomes obsolete because it is the default
behaviour. (Issue 6)
* Allow specifying ``--max-line-length``. (Issue 36)
* Make the shebang more flexible. (Issue 26)
* Add testsuite to the bundle. (Issue 25)
* Fixes for Jython. (Issue 49)
* Add PyPI classifiers. (Issue 43)
* Fix the ``--exclude`` option. (Issue 48)
* Fix W602, accept ``raise`` with 3 arguments. (Issue 34)
* Correctly select all tests if ``DEFAULT_IGNORE == ''``.
```
### 0.6.1
```
------------------
* Fix inconsistent version numbers. (Issue 21)
```
### 0.6.0
```
------------------
* Test suite reorganized and enhanced in order to check more failures
with fewer test files. Read the ``run_tests`` docstring for details
about the syntax.
* Fix E225: accept ``print >>sys.stderr, "..."`` syntax.
* Fix E501 for lines containing multibyte encoded characters. (Issue 7)
* Fix E221, E222, E223, E224 not detected in some cases. (Issue 16)
* Fix E211 to reject ``v = dic['a'] ['b']``. (Issue 17)
* Exit code is always 1 if any error or warning is found. (Issue 10)
* ``--ignore`` checks are now really ignored, especially in
conjunction with ``--count``. (Issue 8)
* Blank lines with spaces yield W293 instead of W291: some developers
want to ignore this warning and indent the blank lines to paste their
code easily in the Python interpreter.
* Fix E301: do not require a blank line before an indented block. (Issue 14)
* Fix E203 to accept NumPy slice notation ``a[0, :]``. (Issue 13)
* Performance improvements.
* Fix decoding and checking non-UTF8 files in Python 3.
* Fix E225: reject ``True+False`` when running on Python 3.
* Fix an exception when the line starts with an operator.
* Allow a new line before closing ``)``, ``}`` or ``]``. (Issue 5)
```
### 0.5.0
```
------------------
* Changed the ``--count`` switch to print to sys.stderr and set
exit code to 1 if any error or warning is found.
* E241 and E242 are removed from the standard checks. If you want to
include these checks, use switch ``--select=E,W``. (Issue 4)
* Blank line is not mandatory before the first class method or nested
function definition, even if there's a docstring. (Issue 1)
* Add the switch ``--version``.
* Fix decoding errors with Python 3. (Issue 13 [1]_)
* Add ``--select`` option which is mirror of ``--ignore``.
* Add checks E261 and E262 for spaces before inline comments.
* New check W604 warns about deprecated usage of backticks.
* New check W603 warns about the deprecated operator ``<>``.
* Performance improvement, due to rewriting of E225.
* E225 now accepts:
- no whitespace after unary operator or similar. (Issue 9 [1]_)
- lambda function with argument unpacking or keyword defaults.
* Reserve "2 blank lines" for module-level logical blocks. (E303)
* Allow multi-line comments. (E302, issue 10 [1]_)
```
### 0.4.2
```
------------------
* Decorators on classes and class methods are OK now.
```
### 0.4
```
----------------
* Support for all versions of Python from 2.3 to 3.1.
* New and greatly expanded self tests.
* Added ``--count`` option to print the total number of errors and warnings.
* Further improvements to the handling of comments and blank lines.
(Issue 1 [1]_ and others changes.)
* Check all py files in directory when passed a directory (Issue
2 [1]_). This also prevents an exception when traversing directories
with non ``*.py`` files.
* E231 should allow commas to be followed by ``)``. (Issue 3 [1]_)
* Spaces are no longer required around the equals sign for keyword
arguments or default parameter values.
.. [1] These issues refer to the `previous issue tracker`__.
.. __: http://github.com/cburroughs/pep8.py/issues
```
### 0.3.1
```
------------------
* Fixes for comments: do not count them when checking for blank lines between
items.
* Added setup.py for pypi upload and easy_installability.
```
### 0.2
```
----------------
* Loads of fixes and improvements.
```
### 0.1
```
----------------
* First release.
```
Links
- PyPI: https://pypi.org/project/pycodestyle
- Changelog: https://pyup.io/changelogs/pycodestyle/
- Docs: https://pycodestyle.readthedocs.io/
This PR pins pycodestyle to the latest release 2.5.0.
Changelog
### 2.5.0 ``` ------------------ New checks: * E117: Over-indented code blocks * W505: Maximum doc-string length only when configured with --max-doc-length Changes: * Remove support for EOL Python 2.6 and 3.3. PR 720. * Add E117 error for over-indented code blocks. * Allow W605 to be silenced by ` noqa` and fix the position reported by W605 * Allow users to omit blank lines around one-liner definitions of classes and functions * Include the function return annotation (``->``) as requiring surrounding whitespace only on Python 3 * Verify that only names can follow ``await``. Previously we allowed numbers and strings. * Add support for Python 3.7 * Fix detection of annotated argument defaults for E252 * Cprrect the position reported by W504 ``` ### 2.4.0 ``` ------------------ New checks: * Add W504 warning for checking that a break doesn't happen after a binary operator. This check is ignored by default. PR 502. * Add W605 warning for invalid escape sequences in string literals. PR 676. * Add W606 warning for 'async' and 'await' reserved keywords being introduced in Python 3.7. PR 684. * Add E252 error for missing whitespace around equal sign in type annotated function arguments with defaults values. PR 717. Changes: * An internal bisect search has replaced a linear search in order to improve efficiency. PR 648. * pycodestyle now uses PyPI trove classifiers in order to document supported python versions on PyPI. PR 654. * 'setup.cfg' '[wheel]' section has been renamed to '[bdist_wheel]', as the former is legacy. PR 653. * pycodestyle now handles very long lines much more efficiently for python 3.2+. Fixes 643. PR 644. * You can now write 'pycodestyle.StyleGuide(verbose=True)' instead of 'pycodestyle.StyleGuide(verbose=True, paths=['-v'])' in order to achieve verbosity. PR 663. * The distribution of pycodestyle now includes the license text in order to comply with open source licenses which require this. PR 694. * 'maximum_line_length' now ignores shebang ('!') lines. PR 736. * Add configuration option for the allowed number of blank lines. It is implemented as a top level dictionary which can be easily overwritten. Fixes 732. PR 733. Bugs: * Prevent a 'DeprecationWarning', and a 'SyntaxError' in future python, caused by an invalid escape sequence. PR 625. * Correctly report E501 when the first line of a docstring is too long. Resolves 622. PR 630. * Support variable annotation when variable start by a keyword, such as class variable type annotations in python 3.6. PR 640. * pycodestyle internals have been changed in order to allow 'python3 -m cProfile' to report correct metrics. PR 647. * Fix a spelling mistake in the description of E722. PR 697. * 'pycodestyle --diff' now does not break if your 'gitconfig' enables 'mnemonicprefix'. PR 706. ``` ### 2.3.1 ``` ------------------ Bugs: * Fix regression in detection of E302 and E306; 618, 620 ``` ### 2.3.0 ``` ------------------ New Checks: * Add E722 warning for bare ``except`` clauses * Report E704 for async function definitions (``async def``) Bugs: * Fix another E305 false positive for variables beginning with "class" or "def" * Fix detection of multiple spaces between ``async`` and ``def`` * Fix handling of variable annotations. Stop reporting E701 on Python 3.6 for variable annotations. ``` ### 2.2.0 ``` ------------------ Announcements: * Added Make target to obtain proper tarball file permissions; 599 Bugs: * Fixed E305 regression caused by 400; 593 ``` ### 2.1.0 ``` ------------------ Announcements: * Change all references to the pep8 project to say pycodestyle; 530 Changes: * Report E302 for blank lines before an "async def"; 556 * Update our list of tested and supported Python versions which are 2.6, 2.7, 3.2, 3.3, 3.4 and 3.5 as well as the nightly Python build and PyPy. * Report E742 and E743 for functions and classes badly named 'l', 'O', or 'I'. * Report E741 on 'global' and 'nonlocal' statements, as well as prohibited single-letter variables. * Deprecated use of `[pep8]` section name in favor of `[pycodestyle]`; 591 * Report E722 when bare except clause is used; 579 Bugs: * Fix opt_type AssertionError when using Flake8 2.6.2 and pycodestyle; 561 * Require two blank lines after toplevel def, class; 536 * Remove accidentally quadratic computation based on the number of colons. This will make pycodestyle faster in some cases; 314 ``` ### 2.0.0 ``` ------------------ Announcements: * Repository renamed to `pycodestyle`; Issue 466 / 481. * Added joint Code of Conduct as member of PyCQA; 483 Changes: * Added tox test support for Python 3.5 and pypy3 * Added check E275 for whitespace on `from ... import ...` lines; 489 / 491 * Added W503 to the list of codes ignored by default ignore list; 498 * Removed use of project level `.pep8` configuration file; 364 Bugs: * Fixed bug with treating `~` operator as binary; 383 / 384 * Identify binary operators as unary; 484 / 485 ``` ### 1.7.0 ``` ------------------ Announcements: * Repository moved to PyCQA Organization on GitHub: https://github.com/pycqa/pep8 Changes: * Reverted the fix in 368, "options passed on command line are only ones accepted" feature. This has many unintended consequences in pep8 and flake8 and needs to be reworked when I have more time. * Added support for Python 3.5. (Issue 420 & 459) * Added support for multi-line config_file option parsing. (Issue 429) * Improved parameter parsing. (Issues 420 & 456) Bugs: * Fixed BytesWarning on Python 3. (Issue 459) ``` ### 1.6.2 ``` ------------------ Changes: * Added check for breaking around a binary operator. (Issue 197, Pull 305) Bugs: * Restored config_file parameter in process_options(). (Issue 380) ``` ### 1.6.1 ``` ------------------ Changes: * Assign variables before referenced. (Issue 287) Bugs: * Exception thrown due to unassigned ``local_dir`` variable. (Issue 377) ``` ### 1.6.0 ``` ------------------ News: * Ian Lee <ianlee1521gmail.com> joined the project as a maintainer. Changes: * Report E731 for lambda assignment. (Issue 277) * Report E704 for one-liner def instead of E701. Do not report this error in the default configuration. (Issue 277) * Replace codes E111, E112 and E113 with codes E114, E115 and E116 for bad indentation of comments. (Issue 274) * Report E266 instead of E265 when the block comment starts with multiple `. (Issue 270) * Report E402 for import statements not at the top of the file. (Issue 264) * Do not enforce whitespaces around ``**`` operator. (Issue 292) * Strip whitespace from around paths during normalization. (Issue 339 / 343) * Update ``--format`` documentation. (Issue 198 / Pull Request 310) * Add ``.tox/`` to default excludes. (Issue 335) * Do not report E121 or E126 in the default configuration. (Issues 256 / 316) * Allow spaces around the equals sign in an annotated function. (Issue 357) * Allow trailing backslash if in an inline comment. (Issue 374) * If ``--config`` is used, only that configuration is processed. Otherwise, merge the user and local configurations are merged. (Issue 368 / 369) Bug fixes: * Don't crash if Checker.build_tokens_line() returns None. (Issue 306) * Don't crash if os.path.expanduser() throws an ImportError. (Issue 297) * Missing space around keyword parameter equal not always reported, E251. (Issue 323) * Fix false positive E711/E712/E713. (Issues 330 and 336) * Do not skip physical checks if the newline is escaped. (Issue 319) * Flush sys.stdout to avoid race conditions with printing. See flake8 bug: https://gitlab.com/pycqa/flake8/issues/17 for more details. (Issue 363) ``` ### 1.5.7 ``` ------------------ Bug fixes: * Skip the traceback on "Broken pipe" signal. (Issue 275) * Do not exit when an option in ``setup.cfg`` or ``tox.ini`` is not recognized. * Check the last line even if it does not end with a newline. (Issue 286) * Always open files in universal newlines mode in Python 2. (Issue 288) ``` ### 1.5.6 ``` ------------------ Bug fixes: * Check the last line even if it has no end-of-line. (Issue 273) ``` ### 1.5.5 ``` ------------------ Bug fixes: * Fix regression with E22 checks and inline comments. (Issue 271) ``` ### 1.5.4 ``` ------------------ Bug fixes: * Fix negative offset with E303 before a multi-line docstring. (Issue 269) ``` ### 1.5.3 ``` ------------------ Bug fixes: * Fix wrong offset computation when error is on the last char of a physical line. (Issue 268) ``` ### 1.5.2 ``` ------------------ Changes: * Distribute a universal wheel file. Bug fixes: * Report correct line number for E303 with comments. (Issue 60) * Do not allow newline after parameter equal. (Issue 252) * Fix line number reported for multi-line strings. (Issue 220) * Fix false positive E121/E126 with multi-line strings. (Issue 265) * Fix E501 not detected in comments with Python 2.5. * Fix caret position with ``--show-source`` when line contains tabs. ``` ### 1.5.1 ``` ------------------ Bug fixes: * Fix a crash with E125 on multi-line strings. (Issue 263) ``` ### 1.5 ``` ---------------- Changes: * Report E129 instead of E125 for visually indented line with same indent as next logical line. (Issue 126) * Report E265 for space before block comment. (Issue 190) * Report E713 and E714 when operators ``not in`` and ``is not`` are recommended. (Issue 236) * Allow long lines in multiline strings and comments if they cannot be wrapped. (Issue 224). * Optionally disable physical line checks inside multiline strings, using `` noqa``. (Issue 242) * Change text for E121 to report "continuation line under-indented for hanging indent" instead of indentation not being a multiple of 4. * Report E131 instead of E121 / E126 if the hanging indent is not consistent within the same continuation block. It helps when error E121 or E126 is in the ``ignore`` list. * Report E126 instead of E121 when the continuation line is hanging with extra indentation, even if indentation is not a multiple of 4. Bug fixes: * Allow the checkers to report errors on empty files. (Issue 240) * Fix ignoring too many checks when ``--select`` is used with codes declared in a flake8 extension. (Issue 216) * Fix regression with multiple brackets. (Issue 214) * Fix ``StyleGuide`` to parse the local configuration if the keyword argument ``paths`` is specified. (Issue 246) * Fix a false positive E124 for hanging indent. (Issue 254) * Fix a false positive E126 with embedded colon. (Issue 144) * Fix a false positive E126 when indenting with tabs. (Issue 204) * Fix behaviour when ``exclude`` is in the configuration file and the current directory is not the project directory. (Issue 247) * The logical checks can return ``None`` instead of an empty iterator. (Issue 250) * Do not report multiple E101 if only the first indentation starts with a tab. (Issue 237) * Fix a rare false positive W602. (Issue 34) ``` ### 1.4.6 ``` ------------------ Changes: * Honor `` noqa`` for errors E711 and E712. (Issue 180) * When both a ``tox.ini`` and a ``setup.cfg`` are present in the project directory, merge their contents. The ``tox.ini`` file takes precedence (same as before). (Issue 182) * Give priority to ``--select`` over ``--ignore``. (Issue 188) * Compare full path when excluding a file. (Issue 186) * New option ``--hang-closing`` to switch to the alternative style of closing bracket indentation for hanging indent. Add error E133 for closing bracket which is missing indentation. (Issue 103) * Accept both styles of closing bracket indentation for hanging indent. Do not report error E123 in the default configuration. (Issue 103) Bug fixes: * Do not crash when running AST checks and the document contains null bytes. (Issue 184) * Correctly report other E12 errors when E123 is ignored. (Issue 103) * Fix false positive E261/E262 when the file contains a BOM. (Issue 193) * Fix E701, E702 and E703 not detected sometimes. (Issue 196) * Fix E122 not detected in some cases. (Issue 201 and 208) * Fix false positive E121 with multiple brackets. (Issue 203) ``` ### 1.4.5 ``` ------------------ * When no path is specified, do not try to read from stdin. The feature was added in 1.4.3, but it is not supported on Windows. Use ``-`` filename argument to read from stdin. This usage is supported since 1.3.4. (Issue 170) * Do not require ``setuptools`` in setup.py. It works around an issue with ``pip`` and Python 3. (Issue 172) * Add ``__pycache__`` to the ignore list. * Change misleading message for E251. (Issue 171) * Do not report false E302 when the source file has a coding cookie or a comment on the first line. (Issue 174) * Reorganize the tests and add tests for the API and for the command line usage and options. (Issues 161 and 162) * Ignore all checks which are not explicitly selected when ``select`` is passed to the ``StyleGuide`` constructor. ``` ### 1.4.4 ``` ------------------ * Report E227 or E228 instead of E225 for whitespace around bitwise, shift or modulo operators. (Issue 166) * Change the message for E226 to make clear that it is about arithmetic operators. * Fix a false positive E128 for continuation line indentation with tabs. * Fix regression with the ``--diff`` option. (Issue 169) * Fix the ``TestReport`` class to print the unexpected warnings and errors. ``` ### 1.4.3 ``` ------------------ * Hide the ``--doctest`` and ``--testsuite`` options when installed. * Fix crash with AST checkers when the syntax is invalid. (Issue 160) * Read from standard input if no path is specified. * Initiate a graceful shutdown on ``Control+C``. * Allow changing the ``checker_class`` for the ``StyleGuide``. ``` ### 1.4.2 ``` ------------------ * Support AST checkers provided by third-party applications. * Register new checkers with ``register_check(func_or_cls, codes)``. * Allow constructing a ``StyleGuide`` with a custom parser. * Accept visual indentation without parenthesis after the ``if`` statement. (Issue 151) * Fix UnboundLocalError when using `` noqa`` with continued lines. (Issue 158) * Re-order the lines for the ``StandardReport``. * Expand tabs when checking E12 continuation lines. (Issue 155) * Refactor the testing class ``TestReport`` and the specific test functions into a separate test module. ``` ### 1.4.1 ``` ------------------ * Allow sphinx.ext.autodoc syntax for comments. (Issue 110) * Report E703 instead of E702 for the trailing semicolon. (Issue 117) * Honor `` noqa`` in addition to `` nopep8``. (Issue 149) * Expose the ``OptionParser`` factory for better extensibility. ``` ### 1.4 ``` ---------------- * Report E226 instead of E225 for optional whitespace around common operators (``*``, ``**``, ``/``, ``+`` and ``-``). This new error code is ignored in the default configuration because PEP 8 recommends to "use your own judgement". (Issue 96) * Lines with a `` nopep8`` at the end will not issue errors on line length E501 or continuation line indentation E12*. (Issue 27) * Fix AssertionError when the source file contains an invalid line ending ``"\r\r\n"``. (Issue 119) * Read the ``[pep8]`` section of ``tox.ini`` or ``setup.cfg`` if present. (Issue 93 and 141) * Add the Sphinx-based documentation, and publish it on https://pycodestyle.readthedocs.io/. (Issue 105) ``` ### 1.3.4 ``` ------------------ * Fix false positive E124 and E128 with comments. (Issue 100) * Fix error on stdin when running with bpython. (Issue 101) * Fix false positive E401. (Issue 104) * Report E231 for nested dictionary in list. (Issue 142) * Catch E271 at the beginning of the line. (Issue 133) * Fix false positive E126 for multi-line comments. (Issue 138) * Fix false positive E221 when operator is preceded by a comma. (Issue 135) * Fix ``--diff`` failing on one-line hunk. (Issue 137) * Fix the ``--exclude`` switch for directory paths. (Issue 111) * Use ``-`` filename to read from standard input. (Issue 128) ``` ### 1.3.3 ``` ------------------ * Fix regression with continuation line checker. (Issue 98) ``` ### 1.3.2 ``` ------------------ * Revert to the previous behaviour for ``--show-pep8``: do not imply ``--first``. (Issue 89) * Add E902 for IO errors. (Issue 87) * Fix false positive for E121, and missed E124. (Issue 92) * Set a sensible default path for config file on Windows. (Issue 95) * Allow ``verbose`` in the configuration file. (Issue 91) * Show the enforced ``max-line-length`` in the error message. (Issue 86) ``` ### 1.3.1 ``` ------------------ * Explain which configuration options are expected. Accept and recommend the options names with hyphen instead of underscore. (Issue 82) * Do not read the user configuration when used as a module (except if ``config_file=True`` is passed to the ``StyleGuide`` constructor). * Fix wrong or missing cases for the E12 series. * Fix cases where E122 was missed. (Issue 81) ``` ### 1.3 ``` ---------------- .. warning:: The internal API is backwards incompatible. * Remove global configuration and refactor the library around a ``StyleGuide`` class; add the ability to configure various reporters. (Issue 35 and 66) * Read user configuration from ``~/.config/pep8`` and local configuration from ``./.pep8``. (Issue 22) * Fix E502 for backslash embedded in multi-line string. (Issue 68) * Fix E225 for Python 3 iterable unpacking (PEP 3132). (Issue 72) * Enable the new checkers from the E12 series in the default configuration. * Suggest less error-prone alternatives for E712 errors. * Rewrite checkers to run faster (E22, E251, E27). * Fixed a crash when parsed code is invalid (too many closing brackets). * Fix E127 and E128 for continuation line indentation. (Issue 74) * New option ``--format`` to customize the error format. (Issue 23) * New option ``--diff`` to check only modified code. The unified diff is read from STDIN. Example: ``hg diff | pep8 --diff`` (Issue 39) * Correctly report the count of failures and set the exit code to 1 when the ``--doctest`` or the ``--testsuite`` fails. * Correctly detect the encoding in Python 3. (Issue 69) * Drop support for Python 2.3, 2.4 and 3.0. (Issue 78) ``` ### 1.2 ``` ---------------- * Add E121 through E128 for continuation line indentation. These checks are disabled by default. If you want to force all checks, use switch ``--select=E,W``. Patch by Sam Vilain. (Issue 64) * Add E721 for direct type comparisons. (Issue 47) * Add E711 and E712 for comparisons to singletons. (Issue 46) * Fix spurious E225 and E701 for function annotations. (Issue 29) * Add E502 for explicit line join between brackets. * Fix E901 when printing source with ``--show-source``. * Report all errors for each checker, instead of reporting only the first occurrence for each line. * Option ``--show-pep8`` implies ``--first``. ``` ### 1.1 ``` ---------------- * Add E901 for syntax errors. (Issues 63 and 30) * Add E271, E272, E273 and E274 for extraneous whitespace around keywords. (Issue 57) * Add ``tox.ini`` configuration file for tests. (Issue 61) * Add ``.travis.yml`` configuration file for continuous integration. (Issue 62) ``` ### 1.0.1 ``` ------------------ * Fix inconsistent version numbers. ``` ### 1.0 ``` ---------------- * Fix W602 ``raise`` to handle multi-char names. (Issue 53) ``` ### 0.7.0 ``` ------------------ * Now ``--first`` prints only the first occurrence of each error. The ``--repeat`` flag becomes obsolete because it is the default behaviour. (Issue 6) * Allow specifying ``--max-line-length``. (Issue 36) * Make the shebang more flexible. (Issue 26) * Add testsuite to the bundle. (Issue 25) * Fixes for Jython. (Issue 49) * Add PyPI classifiers. (Issue 43) * Fix the ``--exclude`` option. (Issue 48) * Fix W602, accept ``raise`` with 3 arguments. (Issue 34) * Correctly select all tests if ``DEFAULT_IGNORE == ''``. ``` ### 0.6.1 ``` ------------------ * Fix inconsistent version numbers. (Issue 21) ``` ### 0.6.0 ``` ------------------ * Test suite reorganized and enhanced in order to check more failures with fewer test files. Read the ``run_tests`` docstring for details about the syntax. * Fix E225: accept ``print >>sys.stderr, "..."`` syntax. * Fix E501 for lines containing multibyte encoded characters. (Issue 7) * Fix E221, E222, E223, E224 not detected in some cases. (Issue 16) * Fix E211 to reject ``v = dic['a'] ['b']``. (Issue 17) * Exit code is always 1 if any error or warning is found. (Issue 10) * ``--ignore`` checks are now really ignored, especially in conjunction with ``--count``. (Issue 8) * Blank lines with spaces yield W293 instead of W291: some developers want to ignore this warning and indent the blank lines to paste their code easily in the Python interpreter. * Fix E301: do not require a blank line before an indented block. (Issue 14) * Fix E203 to accept NumPy slice notation ``a[0, :]``. (Issue 13) * Performance improvements. * Fix decoding and checking non-UTF8 files in Python 3. * Fix E225: reject ``True+False`` when running on Python 3. * Fix an exception when the line starts with an operator. * Allow a new line before closing ``)``, ``}`` or ``]``. (Issue 5) ``` ### 0.5.0 ``` ------------------ * Changed the ``--count`` switch to print to sys.stderr and set exit code to 1 if any error or warning is found. * E241 and E242 are removed from the standard checks. If you want to include these checks, use switch ``--select=E,W``. (Issue 4) * Blank line is not mandatory before the first class method or nested function definition, even if there's a docstring. (Issue 1) * Add the switch ``--version``. * Fix decoding errors with Python 3. (Issue 13 [1]_) * Add ``--select`` option which is mirror of ``--ignore``. * Add checks E261 and E262 for spaces before inline comments. * New check W604 warns about deprecated usage of backticks. * New check W603 warns about the deprecated operator ``<>``. * Performance improvement, due to rewriting of E225. * E225 now accepts: - no whitespace after unary operator or similar. (Issue 9 [1]_) - lambda function with argument unpacking or keyword defaults. * Reserve "2 blank lines" for module-level logical blocks. (E303) * Allow multi-line comments. (E302, issue 10 [1]_) ``` ### 0.4.2 ``` ------------------ * Decorators on classes and class methods are OK now. ``` ### 0.4 ``` ---------------- * Support for all versions of Python from 2.3 to 3.1. * New and greatly expanded self tests. * Added ``--count`` option to print the total number of errors and warnings. * Further improvements to the handling of comments and blank lines. (Issue 1 [1]_ and others changes.) * Check all py files in directory when passed a directory (Issue 2 [1]_). This also prevents an exception when traversing directories with non ``*.py`` files. * E231 should allow commas to be followed by ``)``. (Issue 3 [1]_) * Spaces are no longer required around the equals sign for keyword arguments or default parameter values. .. [1] These issues refer to the `previous issue tracker`__. .. __: http://github.com/cburroughs/pep8.py/issues ``` ### 0.3.1 ``` ------------------ * Fixes for comments: do not count them when checking for blank lines between items. * Added setup.py for pypi upload and easy_installability. ``` ### 0.2 ``` ---------------- * Loads of fixes and improvements. ``` ### 0.1 ``` ---------------- * First release. ```Links
- PyPI: https://pypi.org/project/pycodestyle - Changelog: https://pyup.io/changelogs/pycodestyle/ - Docs: https://pycodestyle.readthedocs.io/