Changelog
=========


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.
