Hello community, here is the log from the commit of package python3-pycodestyle for openSUSE:Factory checked in at 2016-11-07 12:24:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-pycodestyle (Old) and /work/SRC/openSUSE:Factory/.python3-pycodestyle.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-pycodestyle" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-pycodestyle/python3-pycodestyle.changes 2016-08-18 09:17:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-pycodestyle.new/python3-pycodestyle.changes 2016-11-07 12:24:09.000000000 +0100 @@ -1,0 +2,25 @@ +Sun Nov 6 20:35:51 UTC 2016 - a...@gmx.de + +- update to version 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 + * 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 + +------------------------------------------------------------------- Old: ---- pycodestyle-2.0.0.tar.gz New: ---- pycodestyle-2.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-pycodestyle.spec ++++++ --- /var/tmp/diff_new_pack.qBXxuF/_old 2016-11-07 12:24:10.000000000 +0100 +++ /var/tmp/diff_new_pack.qBXxuF/_new 2016-11-07 12:24:10.000000000 +0100 @@ -17,7 +17,7 @@ Name: python3-pycodestyle -Version: 2.0.0 +Version: 2.1.0 Release: 0 Url: https://github.com/PyCQA/pycodestyle Summary: Python style guide checker - formery python3-pep8 ++++++ pycodestyle-2.0.0.tar.gz -> pycodestyle-2.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/CHANGES.txt new/pycodestyle-2.1.0/CHANGES.txt --- old/pycodestyle-2.0.0/CHANGES.txt 2016-06-01 02:00:29.000000000 +0200 +++ new/pycodestyle-2.1.0/CHANGES.txt 2016-11-04 16:00:31.000000000 +0100 @@ -1,6 +1,29 @@ Changelog ========= +2.1.0 (unreleased) +------------------ + +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 + +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 (2016-05-31) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/CONTRIBUTING.rst new/pycodestyle-2.1.0/CONTRIBUTING.rst --- old/pycodestyle-2.0.0/CONTRIBUTING.rst 2016-06-01 01:52:06.000000000 +0200 +++ new/pycodestyle-2.1.0/CONTRIBUTING.rst 2016-08-13 20:42:06.000000000 +0200 @@ -1,4 +1,72 @@ -Contributing to ``pycodestyle`` -=============================== +Contributing to pycodestyle +=========================== -Please see the `developer notes <https://pycodestyle.readthedocs.io/en/latest/developer.html>`_ +When contributing to pycodestyle, please observe our `Code of Conduct`_. + +Step 1: Forking pycodestyle for editing +--------------------------------------- + +Fork the pycodestyle repository on GitHub. This will add +pycodestyle to your GitHub account. You will push your changes to your +fork and then make pull requests into the official pycodestyle repository. + +GitHub has an excellent `guide`_ that has screenshots on how to do this. + +Next, clone your fork of the pycodestyle repository to your system for +editing:: + + $ git clone https://www.github.com/<your_username>/pycodestyle + +Now you have a copy of the pycodestyle codebase that is almost ready for +edits. Next we will setup `virtualenv`_ which will help create an isolated +environment to manage dependancies. + + +Step 2: Use virtualenv when developing +-------------------------------------- + +`virtualenv`_ is a tool to create isolated python environments. +First, install virtualenv with:: + + $ pip install virtualenv + +Next, ``cd`` to the pycodestyle repository that you cloned earlier and +create, then activate a virtualenv:: + + $ cd pycodestyle + $ virtualenv pycodestyle-venv + $ source pycodestyle-venv/bin/activate + +Now you can install the pycodestyle requirements:: + + $ pip install -r dev-requirements.txt + +To deactivate the virtualenv you can type:: + + $ deactivate + +For more information see `virtualenv`_'s documentation. + + +Step 3: Run tests +----------------- + +Before creating a pull request you should run the tests to make sure that the +changes that have been made haven't caused any regressions in functionality. +To run the tests, the core developer team and Travis-CI use `tox`_:: + + $ pip install -r dev-requirements.txt + $ tox + +All the tests should pass for all available interpreters, with the summary of:: + + congratulations :) + +At this point you can create a pull request back to the official pycodestyles +repository for review! For more information on how to make a pull request, +GitHub has an excellent `guide`_. + +.. _virtualenv: http://docs.python-guide.org/en/latest/dev/virtualenvs/ +.. _guide: https://guides.github.com/activities/forking/ +.. _tox: https://tox.readthedocs.io/en/latest/ +.. _Code of Conduct: http://meta.pycqa.org/en/latest/code-of-conduct.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/PKG-INFO new/pycodestyle-2.1.0/PKG-INFO --- old/pycodestyle-2.0.0/PKG-INFO 2016-06-01 02:22:48.000000000 +0200 +++ new/pycodestyle-2.1.0/PKG-INFO 2016-11-04 16:46:05.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pycodestyle -Version: 2.0.0 +Version: 2.1.0 Summary: Python style guide checker Home-page: https://pycodestyle.readthedocs.io/ Author: Ian Lee @@ -9,6 +9,22 @@ Description: pycodestyle (formerly called pep8) - Python style guide checker =============================================================== + .. image:: https://img.shields.io/travis/PyCQA/pycodestyle.svg + :target: https://travis-ci.org/PyCQA/pycodestyle + :alt: Build status + + .. image:: https://readthedocs.org/projects/pycodestyle/badge/?version=latest + :target: https://pycodestyle.readthedocs.io + :alt: Documentation Status + + .. image:: https://img.shields.io/pypi/wheel/pycodestyle.svg + :target: https://pypi.python.org/pypi/pycodestyle + :alt: Wheel Status + + .. image:: https://badges.gitter.im/PyCQA/pycodestyle.svg + :alt: Join the chat at https://gitter.im/PyCQA/pycodestyle + :target: https://gitter.im/PyCQA/pycodestyle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + pycodestyle is a tool to check your Python code against some of the style conventions in `PEP 8`_. @@ -17,8 +33,12 @@ .. note:: This package used to be called ``pep8`` but was renamed to ``pycodestyle`` - to reduce confusion. Further discussion `here - <https://github.com/PyCQA/pycodestyle/issues/466>`_. + to reduce confusion. Further discussion can be found `in the issue where + Guido requested this + change <https://github.com/PyCQA/pycodestyle/issues/466>`_, or in the + lightning talk at PyCon 2016 by @IanLee1521: + `slides <https://speakerdeck.com/ianlee1521/pep8-vs-pep-8>`_ + `video <https://youtu.be/PulzIT8KYLk?t=36m>`_. Features -------- @@ -35,7 +55,7 @@ Installation ------------ - You can install, upgrade, uninstall ``pycodestyle.py`` with these commands:: + You can install, upgrade, and uninstall ``pycodestyle.py`` with these commands:: $ pip install pycodestyle $ pip install --upgrade pycodestyle @@ -91,14 +111,6 @@ Links ----- - .. image:: https://api.travis-ci.org/PyCQA/pycodestyle.png?branch=master - :target: https://travis-ci.org/PyCQA/pycodestyle - :alt: Build status - - .. image:: https://pypip.in/wheel/pycodestyle/badge.png?branch=master - :target: https://pypi.python.org/pypi/pycodestyle - :alt: Wheel Status - * `Read the documentation <https://pycodestyle.readthedocs.io/>`_ * `Fork me on GitHub <http://github.com/PyCQA/pycodestyle>`_ @@ -107,6 +119,29 @@ Changelog ========= + 2.1.0 (unreleased) + ------------------ + + 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 + + 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 (2016-05-31) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/README.rst new/pycodestyle-2.1.0/README.rst --- old/pycodestyle-2.0.0/README.rst 2016-06-01 02:00:29.000000000 +0200 +++ new/pycodestyle-2.1.0/README.rst 2016-11-04 16:17:26.000000000 +0100 @@ -1,6 +1,22 @@ pycodestyle (formerly called pep8) - Python style guide checker =============================================================== +.. image:: https://img.shields.io/travis/PyCQA/pycodestyle.svg + :target: https://travis-ci.org/PyCQA/pycodestyle + :alt: Build status + +.. image:: https://readthedocs.org/projects/pycodestyle/badge/?version=latest + :target: https://pycodestyle.readthedocs.io + :alt: Documentation Status + +.. image:: https://img.shields.io/pypi/wheel/pycodestyle.svg + :target: https://pypi.python.org/pypi/pycodestyle + :alt: Wheel Status + +.. image:: https://badges.gitter.im/PyCQA/pycodestyle.svg + :alt: Join the chat at https://gitter.im/PyCQA/pycodestyle + :target: https://gitter.im/PyCQA/pycodestyle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + pycodestyle is a tool to check your Python code against some of the style conventions in `PEP 8`_. @@ -9,8 +25,12 @@ .. note:: This package used to be called ``pep8`` but was renamed to ``pycodestyle`` - to reduce confusion. Further discussion `here - <https://github.com/PyCQA/pycodestyle/issues/466>`_. + to reduce confusion. Further discussion can be found `in the issue where + Guido requested this + change <https://github.com/PyCQA/pycodestyle/issues/466>`_, or in the + lightning talk at PyCon 2016 by @IanLee1521: + `slides <https://speakerdeck.com/ianlee1521/pep8-vs-pep-8>`_ + `video <https://youtu.be/PulzIT8KYLk?t=36m>`_. Features -------- @@ -27,7 +47,7 @@ Installation ------------ -You can install, upgrade, uninstall ``pycodestyle.py`` with these commands:: +You can install, upgrade, and uninstall ``pycodestyle.py`` with these commands:: $ pip install pycodestyle $ pip install --upgrade pycodestyle @@ -83,14 +103,6 @@ Links ----- -.. image:: https://api.travis-ci.org/PyCQA/pycodestyle.png?branch=master - :target: https://travis-ci.org/PyCQA/pycodestyle - :alt: Build status - -.. image:: https://pypip.in/wheel/pycodestyle/badge.png?branch=master - :target: https://pypi.python.org/pypi/pycodestyle - :alt: Wheel Status - * `Read the documentation <https://pycodestyle.readthedocs.io/>`_ * `Fork me on GitHub <http://github.com/PyCQA/pycodestyle>`_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/dev-requirements.txt new/pycodestyle-2.1.0/dev-requirements.txt --- old/pycodestyle-2.0.0/dev-requirements.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/pycodestyle-2.1.0/dev-requirements.txt 2016-06-08 06:18:03.000000000 +0200 @@ -0,0 +1 @@ +tox diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/docs/developer.rst new/pycodestyle-2.1.0/docs/developer.rst --- old/pycodestyle-2.0.0/docs/developer.rst 2016-06-01 02:00:29.000000000 +0200 +++ new/pycodestyle-2.1.0/docs/developer.rst 2016-06-25 21:55:31.000000000 +0200 @@ -14,8 +14,8 @@ * `Source code <https://github.com/pycqa/pycodestyle>`_ and `issue tracker <https://github.com/pycqa/pycodestyle/issues>`_ on GitHub. * `Continuous tests <http://travis-ci.org/pycqa/pycodestyle>`_ against Python - 2.6 through 3.4 and PyPy, on `Travis-CI platform - <http://about.travis-ci.org/>`_. + 2.6 through 3.5 as well as the nightly Python build and PyPy, on `Travis-CI + platform <https://docs.travis-ci.com//>`_. .. _available on GitHub: https://github.com/pycqa/pycodestyle @@ -27,7 +27,8 @@ * ``pycodestyle`` is intended to be as fast as possible. Using the ``ast`` module defeats that purpose. - The `pep8-naming <https://github.com/flintwork/pep8-naming>`_ plugin exists for this sort of functionality. + The `pep8-naming <https://github.com/flintwork/pep8-naming>`_ plugin exists + for this sort of functionality. * If you want to provide extensibility / plugins, please see `flake8 <https://gitlab.com/pycqa/flake8>`_ - ``pycodestyle`` doesn't want or need a plugin architecture. @@ -103,6 +104,15 @@ When contributing to pycodestyle, please observe our `Code of Conduct`_. +To run the tests, the core developer team and Travis-CI use tox:: + + $ pip install -r dev-requirements.txt + $ tox + +All the tests should pass for all available interpreters, with the summary of:: + + congratulations :) + .. _PEP 8: http://www.python.org/dev/peps/pep-0008/ .. _Code of Conduct: http://meta.pycqa.org/en/latest/code-of-conduct.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/docs/intro.rst new/pycodestyle-2.1.0/docs/intro.rst --- old/pycodestyle-2.0.0/docs/intro.rst 2016-06-01 02:00:29.000000000 +0200 +++ new/pycodestyle-2.1.0/docs/intro.rst 2016-07-09 18:58:23.000000000 +0200 @@ -167,13 +167,14 @@ --benchmark measure processing speed Configuration: - The project options are read from the [pep8] section of the tox.ini - file or the setup.cfg file located in any parent folder of the path(s) - being processed. Allowed options are: exclude, filename, select, + The project options are read from the [pycodestyle] section of the + tox.ini file or the setup.cfg file located in any parent folder of the + path(s) being processed. Allowed options are: exclude, filename, select, ignore, max-line-length, hang-closing, count, format, quiet, show-pep8, show-source, statistics, verbose. - --config=path user config file location (default: ~/.config/pep8) + --config=path user config file location + (default: ~/.config/pycodestyle) Configuration @@ -184,23 +185,23 @@ At the user level, settings are read from the following locations: If on Windows: - ``~\.pep8`` + ``~\.pycodestyle`` Otherwise, if the :envvar:`XDG_CONFIG_HOME` environment variable is defined: - ``XDG_CONFIG_HOME/pep8`` + ``XDG_CONFIG_HOME/pycodestyle`` Else if :envvar:`XDG_CONFIG_HOME` is not defined: - ``~/.config/pep8`` + ``~/.config/pycodestyle`` Example:: - [pep8] + [pycodestyle] ignore = E226,E302,E41 max-line-length = 160 At the project level, a ``setup.cfg`` file or a ``tox.ini`` file is read if -present. If none of these files have a ``[pep8]`` section, no project specific -configuration is loaded. +present. If none of these files have a ``[pycodestyle]`` section, no project +specific configuration is loaded. Error codes @@ -321,6 +322,8 @@ +------------+----------------------------------------------------------------------+ | E304 | blank lines found after function decorator | +------------+----------------------------------------------------------------------+ +| E305 | expected 2 blank lines after end of function or class | ++------------+----------------------------------------------------------------------+ +------------+----------------------------------------------------------------------+ | **E4** | *Import* | +------------+----------------------------------------------------------------------+ @@ -358,6 +361,12 @@ +------------+----------------------------------------------------------------------+ | E731 | do not assign a lambda expression, use a def | +------------+----------------------------------------------------------------------+ +| E741 | do not use variables named 'l', 'O', or 'I' | ++------------+----------------------------------------------------------------------+ +| E742 | do not define classes named 'l', 'O', or 'I' | ++------------+----------------------------------------------------------------------+ +| E743 | do not define functions named 'l', 'O', or 'I' | ++------------+----------------------------------------------------------------------+ +------------+----------------------------------------------------------------------+ | **E9** | *Runtime* | +------------+----------------------------------------------------------------------+ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/pycodestyle.egg-info/PKG-INFO new/pycodestyle-2.1.0/pycodestyle.egg-info/PKG-INFO --- old/pycodestyle-2.0.0/pycodestyle.egg-info/PKG-INFO 2016-06-01 02:22:48.000000000 +0200 +++ new/pycodestyle-2.1.0/pycodestyle.egg-info/PKG-INFO 2016-11-04 16:46:05.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pycodestyle -Version: 2.0.0 +Version: 2.1.0 Summary: Python style guide checker Home-page: https://pycodestyle.readthedocs.io/ Author: Ian Lee @@ -9,6 +9,22 @@ Description: pycodestyle (formerly called pep8) - Python style guide checker =============================================================== + .. image:: https://img.shields.io/travis/PyCQA/pycodestyle.svg + :target: https://travis-ci.org/PyCQA/pycodestyle + :alt: Build status + + .. image:: https://readthedocs.org/projects/pycodestyle/badge/?version=latest + :target: https://pycodestyle.readthedocs.io + :alt: Documentation Status + + .. image:: https://img.shields.io/pypi/wheel/pycodestyle.svg + :target: https://pypi.python.org/pypi/pycodestyle + :alt: Wheel Status + + .. image:: https://badges.gitter.im/PyCQA/pycodestyle.svg + :alt: Join the chat at https://gitter.im/PyCQA/pycodestyle + :target: https://gitter.im/PyCQA/pycodestyle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + pycodestyle is a tool to check your Python code against some of the style conventions in `PEP 8`_. @@ -17,8 +33,12 @@ .. note:: This package used to be called ``pep8`` but was renamed to ``pycodestyle`` - to reduce confusion. Further discussion `here - <https://github.com/PyCQA/pycodestyle/issues/466>`_. + to reduce confusion. Further discussion can be found `in the issue where + Guido requested this + change <https://github.com/PyCQA/pycodestyle/issues/466>`_, or in the + lightning talk at PyCon 2016 by @IanLee1521: + `slides <https://speakerdeck.com/ianlee1521/pep8-vs-pep-8>`_ + `video <https://youtu.be/PulzIT8KYLk?t=36m>`_. Features -------- @@ -35,7 +55,7 @@ Installation ------------ - You can install, upgrade, uninstall ``pycodestyle.py`` with these commands:: + You can install, upgrade, and uninstall ``pycodestyle.py`` with these commands:: $ pip install pycodestyle $ pip install --upgrade pycodestyle @@ -91,14 +111,6 @@ Links ----- - .. image:: https://api.travis-ci.org/PyCQA/pycodestyle.png?branch=master - :target: https://travis-ci.org/PyCQA/pycodestyle - :alt: Build status - - .. image:: https://pypip.in/wheel/pycodestyle/badge.png?branch=master - :target: https://pypi.python.org/pypi/pycodestyle - :alt: Wheel Status - * `Read the documentation <https://pycodestyle.readthedocs.io/>`_ * `Fork me on GitHub <http://github.com/PyCQA/pycodestyle>`_ @@ -107,6 +119,29 @@ Changelog ========= + 2.1.0 (unreleased) + ------------------ + + 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 + + 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 (2016-05-31) ------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/pycodestyle.egg-info/SOURCES.txt new/pycodestyle-2.1.0/pycodestyle.egg-info/SOURCES.txt --- old/pycodestyle-2.0.0/pycodestyle.egg-info/SOURCES.txt 2016-06-01 02:22:48.000000000 +0200 +++ new/pycodestyle-2.1.0/pycodestyle.egg-info/SOURCES.txt 2016-11-04 16:46:05.000000000 +0100 @@ -2,6 +2,7 @@ CONTRIBUTING.rst MANIFEST.in README.rst +dev-requirements.txt pycodestyle.py setup.cfg setup.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/pycodestyle.py new/pycodestyle-2.1.0/pycodestyle.py --- old/pycodestyle-2.0.0/pycodestyle.py 2016-06-01 02:00:29.000000000 +0200 +++ new/pycodestyle-2.1.0/pycodestyle.py 2016-11-04 16:41:11.000000000 +0100 @@ -48,33 +48,35 @@ """ from __future__ import with_statement +import inspect +import keyword import os -import sys import re +import sys import time -import inspect -import keyword import tokenize import warnings -from optparse import OptionParser + from fnmatch import fnmatch +from optparse import OptionParser + try: from configparser import RawConfigParser from io import TextIOWrapper except ImportError: from ConfigParser import RawConfigParser -__version__ = '2.0.0' +__version__ = '2.1.0' DEFAULT_EXCLUDE = '.svn,CVS,.bzr,.hg,.git,__pycache__,.tox' DEFAULT_IGNORE = 'E121,E123,E126,E226,E24,E704,W503' try: if sys.platform == 'win32': - USER_CONFIG = os.path.expanduser(r'~\.pep8') + USER_CONFIG = os.path.expanduser(r'~\.pycodestyle') else: USER_CONFIG = os.path.join( os.getenv('XDG_CONFIG_HOME') or os.path.expanduser('~/.config'), - 'pep8' + 'pycodestyle' ) except ImportError: USER_CONFIG = None @@ -197,7 +199,7 @@ return len(physical_line), "W292 no newline at end of file" -def maximum_line_length(physical_line, max_line_length, multiline): +def maximum_line_length(physical_line, max_line_length, multiline, noqa): r"""Limit all lines to a maximum of 79 characters. There are still many devices around that are limited to 80 character @@ -211,7 +213,7 @@ """ line = physical_line.rstrip() length = len(line) - if length > max_line_length and not noqa(line): + if length > max_line_length and not noqa: # Special case for long URLs in multi-line docstrings or comments, # but still report the error when the 72 first chars are whitespaces. chunks = line.split() @@ -236,7 +238,9 @@ def blank_lines(logical_line, blank_lines, indent_level, line_number, - blank_before, previous_logical, previous_indent_level): + blank_before, previous_logical, + previous_unindented_logical_line, previous_indent_level, + lines): r"""Separate top-level function and class definitions with two blank lines. Method definitions inside a class are separated by a single blank line. @@ -248,13 +252,16 @@ Use blank lines in functions, sparingly, to indicate logical sections. Okay: def a():\n pass\n\n\ndef b():\n pass + Okay: def a():\n pass\n\n\nasync def b():\n pass Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass E301: class Foo:\n b = 0\n def bar():\n pass E302: def a():\n pass\n\ndef b(n):\n pass + E302: def a():\n pass\n\nasync def b(n):\n pass E303: def a():\n pass\n\n\n\ndef b(n):\n pass E303: def a():\n\n\n\n pass E304: @decorator\n\ndef a():\n pass + E305: def a():\n pass\na() """ if line_number < 3 and not previous_logical: return # Don't expect blank lines before the first line @@ -263,13 +270,30 @@ yield 0, "E304 blank lines found after function decorator" elif blank_lines > 2 or (indent_level and blank_lines == 2): yield 0, "E303 too many blank lines (%d)" % blank_lines - elif logical_line.startswith(('def ', 'class ', '@')): + elif logical_line.startswith(('def ', 'async def', 'class ', '@')): if indent_level: if not (blank_before or previous_indent_level < indent_level or DOCSTRING_REGEX.match(previous_logical)): - yield 0, "E301 expected 1 blank line, found 0" + ancestor_level = indent_level + nested = False + # Search backwards for a def ancestor or tree root (top level). + for line in lines[line_number - 2::-1]: + if line.strip() and expand_indent(line) < ancestor_level: + ancestor_level = expand_indent(line) + nested = line.lstrip().startswith('def ') + if nested or ancestor_level == 0: + break + if nested: + yield 0, "E306 expected 1 blank line before a " \ + "nested definition, found 0" + else: + yield 0, "E301 expected 1 blank line, found 0" elif blank_before != 2: yield 0, "E302 expected 2 blank lines, found %d" % blank_before + elif (logical_line and not indent_level and blank_before != 2 and + previous_unindented_logical_line.startswith(('def', 'class'))): + yield 0, "E305 expected 2 blank lines after " \ + "class or function definition, found %d" % blank_before def extraneous_whitespace(logical_line): @@ -958,22 +982,25 @@ line = logical_line last_char = len(line) - 1 found = line.find(':') + prev_found = 0 + counts = dict((char, 0) for char in '{}[]()') while -1 < found < last_char: - before = line[:found] - if ((before.count('{') <= before.count('}') and # {'a': 1} (dict) - before.count('[') <= before.count(']') and # [1:2] (slice) - before.count('(') <= before.count(')'))): # (annotation) - lambda_kw = LAMBDA_REGEX.search(before) + update_counts(line[prev_found:found], counts) + if ((counts['{'] <= counts['}'] and # {'a': 1} (dict) + counts['['] <= counts[']'] and # [1:2] (slice) + counts['('] <= counts[')'])): # (annotation) + lambda_kw = LAMBDA_REGEX.search(line, 0, found) if lambda_kw: before = line[:lambda_kw.start()].rstrip() if before[-1:] == '=' and isidentifier(before[:-1].strip()): yield 0, ("E731 do not assign a lambda expression, use a " "def") break - if before.startswith('def '): + if line.startswith('def '): yield 0, "E704 multiple statements on one line (def)" else: yield found, "E701 multiple statements on one line (colon)" + prev_found = found found = line.find(':', found + 1) found = line.find(';') while -1 < found: @@ -1150,6 +1177,58 @@ yield match.start(), "E721 do not compare types, use 'isinstance()'" +def ambiguous_identifier(logical_line, tokens): + r"""Never use the characters 'l', 'O', or 'I' as variable names. + + In some fonts, these characters are indistinguishable from the numerals + one and zero. When tempted to use 'l', use 'L' instead. + + Okay: L = 0 + Okay: o = 123 + Okay: i = 42 + E741: l = 0 + E741: O = 123 + E741: I = 42 + + Variables can be bound in several other contexts, including class and + function definitions, 'global' and 'nonlocal' statements, exception + handlers, and 'with' statements. + + Okay: except AttributeError as o: + Okay: with lock as L: + E741: except AttributeError as O: + E741: with lock as l: + E741: global I + E741: nonlocal l + E742: class I(object): + E743: def l(x): + """ + idents_to_avoid = ('l', 'O', 'I') + prev_type, prev_text, prev_start, prev_end, __ = tokens[0] + for token_type, text, start, end, line in tokens[1:]: + ident = pos = None + # identifiers on the lhs of an assignment operator + if token_type == tokenize.OP and '=' in text: + if prev_text in idents_to_avoid: + ident = prev_text + pos = prev_start + # identifiers bound to a value with 'as', 'global', or 'nonlocal' + if prev_text in ('as', 'global', 'nonlocal'): + if text in idents_to_avoid: + ident = text + pos = start + if prev_text == 'class': + if text in idents_to_avoid: + yield start, "E742 ambiguous class definition '%s'" % text + if prev_text == 'def': + if text in idents_to_avoid: + yield start, "E743 ambiguous function definition '%s'" % text + if ident: + yield pos, "E741 ambiguous variable name '%s'" % ident + prev_text = text + prev_start = start + + def python_3000_has_key(logical_line, noqa): r"""The {}.has_key() method is removed in Python 3: use the 'in' operator. @@ -1219,7 +1298,7 @@ with open(filename, 'rb') as f: (coding, lines) = tokenize.detect_encoding(f.readline) f = TextIOWrapper(f, coding, line_buffering=True) - return [l.decode(coding) for l in lines] + f.readlines() + return [line.decode(coding) for line in lines] + f.readlines() except (LookupError, SyntaxError, UnicodeError): # Fall back if file encoding is improperly declared with open(filename, encoding='latin-1') as f: @@ -1333,8 +1412,18 @@ return any(fnmatch(filename, pattern) for pattern in patterns) +def update_counts(s, counts): + r"""Adds one to the counts of each appearance of characters in s, + for characters in counts""" + for char in s: + if char in counts: + counts[char] += 1 + + def _is_eol_token(token): return token[0] in NEWLINE or token[4][token[3][1]:].lstrip() == '\\\n' + + if COMMENT_WITH_NL: def _is_eol_token(token, _eol_token=_is_eol_token): return _eol_token(token) or (token[0] == tokenize.COMMENT and @@ -1384,6 +1473,8 @@ mod = inspect.getmodule(register_check) for (name, function) in inspect.getmembers(mod, inspect.isfunction): register_check(function) + + init_checks_registry() @@ -1431,6 +1522,7 @@ self.lines[0] = self.lines[0][3:] self.report = report or options.report self.report_error = self.report.error + self.noqa = False def report_invalid_syntax(self): """Check if the syntax is valid.""" @@ -1541,6 +1633,8 @@ if self.logical_line: self.previous_indent_level = self.indent_level self.previous_logical = self.logical_line + if not self.indent_level: + self.previous_unindented_logical_line = self.logical_line self.blank_lines = 0 self.tokens = [] @@ -1565,6 +1659,7 @@ for token in tokengen: if token[2][0] > self.total_lines: return + self.noqa = token[4] and noqa(token[4]) self.maybe_check_physical(token) yield token except (SyntaxError, tokenize.TokenError): @@ -1610,6 +1705,7 @@ self.indent_char = None self.indent_level = self.previous_indent_level = 0 self.previous_logical = '' + self.previous_unindented_logical_line = '' self.tokens = [] self.blank_lines = self.blank_before = 0 parens = 0 @@ -1952,7 +2048,7 @@ return sorted(checks) -def get_parser(prog='pep8', version=__version__): +def get_parser(prog='pycodestyle', version=__version__): """Create the parser for the program.""" parser = OptionParser(prog=prog, version=version, usage="%prog [options] input ...") @@ -2020,7 +2116,7 @@ If a config file is specified on the command line with the "--config" option, then only it is used for configuration. - Otherwise, the user configuration (~/.config/pep8) and any local + Otherwise, the user configuration (~/.config/pycodestyle) and any local configurations in the current directory or above will be merged together (in that order) using the read method of ConfigParser. """ @@ -2049,8 +2145,14 @@ print('cli configuration: %s' % cli_conf) config.read(cli_conf) - pep8_section = parser.prog - if config.has_section(pep8_section): + pycodestyle_section = None + if config.has_section(parser.prog): + pycodestyle_section = parser.prog + elif config.has_section('pep8'): + pycodestyle_section = 'pep8' # Deprecated + warnings.warn('[pep8] section is deprecated. Use [pycodestyle].') + + if pycodestyle_section: option_list = dict([(o.dest, o.type or o.action) for o in parser.option_list]) @@ -2058,23 +2160,23 @@ (new_options, __) = parser.parse_args([]) # Second, parse the configuration - for opt in config.options(pep8_section): + for opt in config.options(pycodestyle_section): if opt.replace('_', '-') not in parser.config_options: print(" unknown option '%s' ignored" % opt) continue if options.verbose > 1: - print(" %s = %s" % (opt, config.get(pep8_section, opt))) + print(" %s = %s" % (opt, + config.get(pycodestyle_section, opt))) normalized_opt = opt.replace('-', '_') opt_type = option_list[normalized_opt] if opt_type in ('int', 'count'): - value = config.getint(pep8_section, opt) - elif opt_type == 'string': - value = config.get(pep8_section, opt) + value = config.getint(pycodestyle_section, opt) + elif opt_type in ('store_true', 'store_false'): + value = config.getboolean(pycodestyle_section, opt) + else: + value = config.get(pycodestyle_section, opt) if normalized_opt == 'exclude': value = normalize_paths(value, local_dir) - else: - assert opt_type in ('store_true', 'store_false') - value = config.getboolean(pep8_section, opt) setattr(new_options, normalized_opt, value) # Third, overwrite with the command-line options @@ -2088,7 +2190,7 @@ """Process options passed either via arglist or via command line args. Passing in the ``config_file`` parameter allows other tools, such as flake8 - to specify their own options to be processed in pep8. + to specify their own options to be processed in pycodestyle. """ if not parser: parser = get_parser() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/setup.cfg new/pycodestyle-2.1.0/setup.cfg --- old/pycodestyle-2.0.0/setup.cfg 2016-06-01 02:22:48.000000000 +0200 +++ new/pycodestyle-2.1.0/setup.cfg 2016-11-04 16:46:05.000000000 +0100 @@ -1,7 +1,7 @@ [wheel] universal = 1 -[pep8] +[pycodestyle] select = ignore = E226,E24 max_line_length = 79 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/E10.py new/pycodestyle-2.1.0/testsuite/E10.py --- old/pycodestyle-2.0.0/testsuite/E10.py 2016-05-31 18:17:34.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/E10.py 2016-06-08 06:18:03.000000000 +0200 @@ -38,4 +38,8 @@ u'Norrbotten', u'V\xe4sterbotten', ]) -#: +#: E101 W191 +if True: + print(""" + tab at start of this line +""") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/E12not.py new/pycodestyle-2.1.0/testsuite/E12not.py --- old/pycodestyle-2.0.0/testsuite/E12not.py 2016-05-31 18:17:34.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/E12not.py 2016-07-09 18:58:23.000000000 +0200 @@ -139,6 +139,7 @@ var_four): print(var_one) + if ((row < 0 or self.moduleCount <= row or col < 0 or self.moduleCount <= col)): raise Exception("%s,%s - %s" % (row, col, self.moduleCount)) @@ -400,6 +401,7 @@ .replace('"', '"') .replace('\n', '<br>\n')) + # parser.add_option('--count', action='store_true', help="print total number of errors and warnings " @@ -616,6 +618,7 @@ for key, val in node.items() ))] + foo([ 'bug' ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/E22.py new/pycodestyle-2.1.0/testsuite/E22.py --- old/pycodestyle-2.0.0/testsuite/E22.py 2016-05-31 18:17:34.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/E22.py 2016-06-25 23:41:24.000000000 +0200 @@ -150,6 +150,7 @@ def squares(n): return (i**2 for i in range(n)) + ENG_PREFIXES = { -6: "\u03bc", # Greek letter mu -3: "m", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/E30.py new/pycodestyle-2.1.0/testsuite/E30.py --- old/pycodestyle-2.0.0/testsuite/E30.py 2016-05-31 18:17:34.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/E30.py 2016-08-13 20:42:06.000000000 +0200 @@ -44,7 +44,13 @@ def b(): pass #: +#: E302:4:1 +def a(): + pass +async def b(): + pass +#: #: E303:5:1 print @@ -88,3 +94,65 @@ It gives error E303: too many blank lines (3) """ #: + +#: E305:7:1 +def a(): + print + + # comment + + # another comment +a() +#: E305:8:1 +def a(): + print + + # comment + + # another comment + +try: + a() +except: + pass +#: E305:5:1 +def a(): + print + +# Two spaces before comments, too. +if a(): + a() +#: + +#: E306:3:5 +def a(): + x = 1 + def b(): + pass +#: E306:3:5 E306:5:9 +def a(): + x = 2 + def b(): + x = 1 + def c(): + pass +#: E306:3:5 E306:6:5 +def a(): + x = 1 + class C: + pass + x = 2 + def b(): + pass +#: + +#: E305:8:1 +# Example from https://github.com/PyCQA/pycodestyle/issues/400 +import stuff + + +def main(): + blah, blah + +if __name__ == '__main__': + main() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/E30not.py new/pycodestyle-2.1.0/testsuite/E30not.py --- old/pycodestyle-2.0.0/testsuite/E30not.py 2016-05-31 18:17:34.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/E30not.py 2016-06-25 23:41:24.000000000 +0200 @@ -132,3 +132,22 @@ def b(): pass +#: Okay +def foo(): + pass + + +def bar(): + pass + + +class Foo(object): + pass + + +class Bar(object): + pass + + +if __name__ == '__main__': + foo() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/support.py new/pycodestyle-2.1.0/testsuite/support.py --- old/pycodestyle-2.0.0/testsuite/support.py 2016-06-01 01:52:06.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/support.py 2016-06-26 05:29:00.000000000 +0200 @@ -196,5 +196,6 @@ init_tests(style) return style.check_files() + # nose should not collect these functions init_tests.__test__ = run_tests.__test__ = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/test_all.py new/pycodestyle-2.1.0/testsuite/test_all.py --- old/pycodestyle-2.0.0/testsuite/test_all.py 2016-06-01 01:52:06.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/test_all.py 2016-07-09 18:58:23.000000000 +0200 @@ -62,5 +62,6 @@ def _main(): return unittest.TextTestRunner(verbosity=2).run(suite()) + if __name__ == '__main__': sys.exit(not _main()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/test_api.py new/pycodestyle-2.1.0/testsuite/test_api.py --- old/pycodestyle-2.0.0/testsuite/test_api.py 2016-06-01 01:52:06.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/test_api.py 2016-07-09 18:58:23.000000000 +0200 @@ -138,7 +138,7 @@ self.reset() def test_styleguide_options(self): - # Instanciate a simple checker + # Instantiate a simple checker pep8style = pycodestyle.StyleGuide(paths=[E11]) # Check style's attributes @@ -172,7 +172,7 @@ def test_styleguide_ignore_code(self): def parse_argv(argstring): _saved_argv = sys.argv - sys.argv = shlex.split('pep8 %s /dev/null' % argstring) + sys.argv = shlex.split('pycodestyle %s /dev/null' % argstring) try: return pycodestyle.StyleGuide(parse_argv=True) finally: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/test_parser.py new/pycodestyle-2.1.0/testsuite/test_parser.py --- old/pycodestyle-2.0.0/testsuite/test_parser.py 2016-06-01 01:52:06.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/test_parser.py 2016-06-08 06:18:03.000000000 +0200 @@ -19,7 +19,7 @@ def test_vanilla_ignore_parsing(self): contents = b""" -[pep8] +[pycodestyle] ignore = E226,E24 """ options, args = _process_file(contents) @@ -28,7 +28,7 @@ def test_multiline_ignore_parsing(self): contents = b""" -[pep8] +[pycodestyle] ignore = E226, E24 @@ -40,7 +40,7 @@ def test_trailing_comma_ignore_parsing(self): contents = b""" -[pep8] +[pycodestyle] ignore = E226, """ @@ -50,7 +50,7 @@ def test_multiline_trailing_comma_ignore_parsing(self): contents = b""" -[pep8] +[pycodestyle] ignore = E226, E24, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/test_shell.py new/pycodestyle-2.1.0/testsuite/test_shell.py --- old/pycodestyle-2.0.0/testsuite/test_shell.py 2016-06-01 01:52:06.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/test_shell.py 2016-06-08 06:18:03.000000000 +0200 @@ -19,7 +19,7 @@ self._saved_stdin_get_value = pycodestyle.stdin_get_value self._config_filenames = [] self.stdin = '' - sys.argv = ['pep8'] + sys.argv = ['pycodestyle'] sys.stdout = PseudoFile() sys.stderr = PseudoFile() @@ -39,7 +39,7 @@ def stdin_get_value(self): return self.stdin - def pep8(self, *args): + def pycodestyle(self, *args): del sys.stdout[:], sys.stderr[:] sys.argv[1:] = args try: @@ -50,28 +50,30 @@ return sys.stdout.getvalue(), sys.stderr.getvalue(), errorcode def test_print_usage(self): - stdout, stderr, errcode = self.pep8('--help') + stdout, stderr, errcode = self.pycodestyle('--help') self.assertFalse(errcode) self.assertFalse(stderr) - self.assertTrue(stdout.startswith("Usage: pep8 [options] input")) + self.assertTrue(stdout.startswith( + "Usage: pycodestyle [options] input" + )) - stdout, stderr, errcode = self.pep8('--version') + stdout, stderr, errcode = self.pycodestyle('--version') self.assertFalse(errcode) self.assertFalse(stderr) self.assertEqual(stdout.count('\n'), 1) - stdout, stderr, errcode = self.pep8('--obfuscated') + stdout, stderr, errcode = self.pycodestyle('--obfuscated') self.assertEqual(errcode, 2) self.assertEqual(stderr.splitlines(), - ["Usage: pep8 [options] input ...", "", - "pep8: error: no such option: --obfuscated"]) + ["Usage: pycodestyle [options] input ...", "", + "pycodestyle: error: no such option: --obfuscated"]) self.assertFalse(stdout) self.assertFalse(self._config_filenames) def test_check_simple(self): E11 = os.path.join(ROOT_DIR, 'testsuite', 'E11.py') - stdout, stderr, errcode = self.pep8(E11) + stdout, stderr, errcode = self.pycodestyle(E11) stdout = stdout.splitlines() self.assertEqual(errcode, 1) self.assertFalse(stderr) @@ -82,20 +84,20 @@ self.assertEqual(x, str(num)) self.assertEqual(y, str(col)) self.assertTrue(msg.startswith(' E11')) - # Config file read from the pep8's setup.cfg + # Config file read from the pycodestyle's setup.cfg config_filenames = [os.path.basename(p) for p in self._config_filenames] self.assertTrue('setup.cfg' in config_filenames) def test_check_stdin(self): pycodestyle.PROJECT_CONFIG = () - stdout, stderr, errcode = self.pep8('-') + stdout, stderr, errcode = self.pycodestyle('-') self.assertFalse(errcode) self.assertFalse(stderr) self.assertFalse(stdout) self.stdin = 'import os, sys\n' - stdout, stderr, errcode = self.pep8('-') + stdout, stderr, errcode = self.pycodestyle('-') stdout = stdout.splitlines() self.assertEqual(errcode, 1) self.assertFalse(stderr) @@ -104,7 +106,7 @@ def test_check_non_existent(self): self.stdin = 'import os, sys\n' - stdout, stderr, errcode = self.pep8('fictitious.py') + stdout, stderr, errcode = self.pycodestyle('fictitious.py') self.assertEqual(errcode, 1) self.assertFalse(stderr) self.assertTrue(stdout.startswith('fictitious.py:1:1: E902 ')) @@ -112,11 +114,11 @@ def test_check_noarg(self): # issue #170: do not read stdin by default pycodestyle.PROJECT_CONFIG = () - stdout, stderr, errcode = self.pep8() + stdout, stderr, errcode = self.pycodestyle() self.assertEqual(errcode, 2) self.assertEqual(stderr.splitlines(), - ["Usage: pep8 [options] input ...", "", - "pep8: error: input not specified"]) + ["Usage: pycodestyle [options] input ...", "", + "pycodestyle: error: input not specified"]) self.assertFalse(self._config_filenames) def test_check_diff(self): @@ -136,7 +138,7 @@ ] self.stdin = '\n'.join(diff_lines) - stdout, stderr, errcode = self.pep8('--diff') + stdout, stderr, errcode = self.pycodestyle('--diff') stdout = stdout.splitlines() self.assertEqual(errcode, 1) self.assertFalse(stderr) @@ -149,7 +151,7 @@ diff_lines[:2] = ["--- a/testsuite/E11.py 2006-06-01 08:49 +0400", "+++ b/testsuite/E11.py 2008-04-06 17:36 +0400"] self.stdin = '\n'.join(diff_lines) - stdout, stderr, errcode = self.pep8('--diff') + stdout, stderr, errcode = self.pycodestyle('--diff') stdout = stdout.splitlines() self.assertEqual(errcode, 1) self.assertFalse(stderr) @@ -167,7 +169,7 @@ "@@ -5,0 +6 @@ if True:", "+ print"] self.stdin = '\n'.join(diff_lines) - stdout, stderr, errcode = self.pep8('--diff') + stdout, stderr, errcode = self.pycodestyle('--diff') (stdout,) = stdout.splitlines() self.assertEqual(errcode, 1) self.assertFalse(stderr) @@ -175,15 +177,17 @@ # missing '--diff' self.stdin = '\n'.join(diff_lines) - stdout, stderr, errcode = self.pep8() + stdout, stderr, errcode = self.pycodestyle() self.assertEqual(errcode, 2) self.assertFalse(stdout) - self.assertTrue(stderr.startswith('Usage: pep8 [options] input ...')) + self.assertTrue(stderr.startswith( + 'Usage: pycodestyle [options] input ...' + )) # no matching file in the diff diff_lines[3] = "+++ b/testsuite/lost/E11.py" self.stdin = '\n'.join(diff_lines) - stdout, stderr, errcode = self.pep8('--diff') + stdout, stderr, errcode = self.pycodestyle('--diff') self.assertFalse(errcode) self.assertFalse(stdout) self.assertFalse(stderr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycodestyle-2.0.0/testsuite/utf-8.py new/pycodestyle-2.1.0/testsuite/utf-8.py --- old/pycodestyle-2.0.0/testsuite/utf-8.py 2016-05-31 18:17:34.000000000 +0200 +++ new/pycodestyle-2.1.0/testsuite/utf-8.py 2016-06-26 00:14:38.000000000 +0200 @@ -1,22 +1,5 @@ # -*- coding: utf-8 -*- - -class Rectangle(Blob): - - def __init__(self, width, height, - color='black', emphasis=None, highlight=0): - if width == 0 and height == 0 and \ - color == 'red' and emphasis == 'strong' or \ - highlight > 100: - raise ValueError("sorry, you lose") - if width == 0 and height == 0 and (color == 'red' or - emphasis is None): - raise ValueError("I don't think so -- values are %s, %s" % - (width, height)) - Blob.__init__(self, width, height, - color, emphasis, highlight) - - # Some random text with multi-byte characters (utf-8 encoded) # # Εδώ μάτσο κειμένων τη, τρόπο πιθανό διευθυντές ώρα μη. Νέων απλό παράγει ροή