Changelog ========= 1.x (unreleased) ---------------- * Support AST checkers provided by third-party applications. * Register new checkers with ``register_check(func_or_cls, codes)``. * Allow to construct 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) 1.4.1 (2013-01-18) ------------------ * 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 (2012-12-22) ---------------- * Report E226 instead of E225 for optional white space 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 http://pep8.readthedocs.org/. (Issue #105) 1.3.4 (2012-12-18) ------------------ * 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 (2012-06-27) ------------------ * Fix regression with continuation line checker. (Issue #98) 1.3.2 (2012-06-26) ------------------ * 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 (2012-06-18) ------------------ * 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 (2012-06-15) ---------------- .. 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 (2012-06-01) ---------------- * 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 occurence for each line. * Option ``--show-pep8`` implies ``--first``. 1.1 (2012-05-24) ---------------- * 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 (2012-04-06) ------------------ * Fix inconsistent version numbers. 1.0 (2012-04-04) ---------------- * Fix W602 ``raise`` to handle multi-char names. (Issue #53) 0.7.0 (2012-03-26) ------------------ * Now ``--first`` prints only the first occurence of each error. The ``--repeat`` flag becomes obsolete because it is the default behaviour. (Issue #6) * Allow to specify ``--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 (2010-10-03) ------------------ * Fix inconsistent version numbers. (Issue #21) 0.6.0 (2010-09-19) ------------------ * 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 (2010-02-17) ------------------ * 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 (2009-10-22) ------------------ * Decorators on classes and class methods are OK now. 0.4 (2009-10-20) ---------------- * 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 (2009-09-14) ------------------ * 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 (2007-10-16) ---------------- * Loads of fixes and improvements. 0.1 (2006-10-01) ---------------- * First release.