You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Anthony Sottile 6cddabcb0a
Merge pull request #1094 from PyCQA/pre-commit-ci-update-config
1 week ago
.github/workflows add python3.11 support (except* and a[*b]) 3 months ago
docs docs: Fix double-dash converted to en-dash 6 months ago
testsuite allow parenthesized yield (generator-coroutines) 2 weeks ago
.coveragerc Instrument code coverage 2 years ago
.gitattributes Added .gitattributes to prevent auto-munging intentional line endings 5 years ago
.gitignore Instrument code coverage 2 years ago
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate 1 week ago
CHANGES.txt Release 2.9.1 2 weeks ago
CONTRIBUTING.rst drop python 3.4 1 year ago
LICENSE Bumped license year 2 years ago
MANIFEST.in Include license file in the generated packages 5 years ago
Makefile Simplified / cleaned up the Makefile to match Travis (just use tox) 2 years ago
README.rst drop python 3.4 1 year ago
dev-requirements.txt Updated developer documentation for testing 6 years ago
pycodestyle.py Release 2.9.1 2 weeks ago
setup.cfg Pydoc fixes to support W505 in self-checks 4 years ago
setup.py run pyupgrade 9 months ago
tox.ini manual: drop python 2 9 months ago

README.rst

pycodestyle (formerly called pep8) - Python style guide checker

Build status

Documentation Status

Wheel Status

Join the chat at https://gitter.im/PyCQA/pycodestyle

pycodestyle is a tool to check your Python code against some of the style conventions in PEP 8.

Note

This package used to be called pep8 but was renamed to pycodestyle to reduce confusion. Further discussion can be found in the issue where Guido requested this change, or in the lightning talk at PyCon 2016 by @IanLee1521: slides video.

Features

  • Plugin architecture: Adding new checks is easy.
  • Parseable output: Jump to error location in your editor.
  • Small: Just one Python file, requires only stdlib. You can use just the pycodestyle.py file for this purpose.
  • Comes with a comprehensive test suite.

Installation

You can install, upgrade, and uninstall pycodestyle.py with these commands:

$ pip install pycodestyle
$ pip install --upgrade pycodestyle
$ pip uninstall pycodestyle

There's also a package for Debian/Ubuntu, but it's not always the latest version.

Example usage and output

$ pycodestyle --first optparse.py
optparse.py:69:11: E401 multiple imports on one line
optparse.py:77:1: E302 expected 2 blank lines, found 1
optparse.py:88:5: E301 expected 1 blank line, found 0
optparse.py:222:34: W602 deprecated form of raising exception
optparse.py:347:31: E211 whitespace before '('
optparse.py:357:17: E201 whitespace after '{'
optparse.py:472:29: E221 multiple spaces before operator
optparse.py:544:21: W601 .has_key() is deprecated, use 'in'

You can also make pycodestyle.py show the source code for each error, and even the relevant text from PEP 8:

$ pycodestyle --show-source --show-pep8 testsuite/E40.py
testsuite/E40.py:2:10: E401 multiple imports on one line
import os, sys
         ^
    Imports should usually be on separate lines.

    Okay: import os\nimport sys
    E401: import sys, os

Or you can display how often each error was found:

$ pycodestyle --statistics -qq Python-2.5/Lib
232     E201 whitespace after '['
599     E202 whitespace before ')'
631     E203 whitespace before ','
842     E211 whitespace before '('
2531    E221 multiple spaces before operator
4473    E301 expected 1 blank line, found 0
4006    E302 expected 2 blank lines, found 1
165     E303 too many blank lines (4)
325     E401 multiple imports on one line
3615    E501 line too long (82 characters)
612     W601 .has_key() is deprecated, use 'in'
1188    W602 deprecated form of raising exception