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 - [email protected]
+
+- 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)
#
# Εδώ μάτσο κειμένων τη, τρόπο πιθανό διευθυντές ώρα μη. Νέων απλό παράγει ροή