NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #381 most downloaded on PyPI
Python style guide checker
Last release 12 days ago
22 Sep 2026
Ships fairly regularly
a new release about every 8 months
Nearly every release is documented
notes for 20 of 21 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
24 releases · first in 2016
Improve performance of module_imports_on_top_of_file. PR #1292.
Changes:
module_imports_on_top_of_file. PR #1292.python_3000_invalid_escape_sequence. PR #1292.missing_whitespace_after_keyword. PR #1291.commonprefix. PR #1323.Add support for python 3.14. PR #1283.
Changes:
One column per quarter.
Improve performance. PR #1254. PR #1255.
Changes:
Properly preserve escaped { and } in fstrings in logical lines in 3.12+. PR #1252.
Changes:
{ and } in fstrings in logical lines in 3.12+.
PR #1252.E721: Fix false positive of the form x.type(...) ==. PR #1228.
Changes:
x.type(...) ==. PR #1228.@. PR #1247.E275: fix false positive with fstrings containing keyword parts in python 3.12
Changes:
Drop EOL python 3.6 / 3.7. PR #1129, #1160.
Changes:
isinstance(x, t) or type(x) is t. PR #1086, #1167.<> operator. PR #1161.async / await are always keywords. PR #1162.ur'' strings. PR #1181.E231: allow trailing comma inside 1-tuples in []. PR #1108.
Changes:
[]. PR #1108.E275: fix false positive for yield expressions. PR #1091.
Changes:
E221, E222, E223, E224: add support for := operator. PR #1032.
Changes:
:= operator. PR #1032.\xa0) as whitespace. PR #1035._is_binary_operator. PR #1052.E712: fix false negative with multiple comparisons. PR #987.
Changes:
match. PR #989.indent_size_str "setting". PR #995.__all__ to be typed. PR #1019.* in case. PR #1003.Fix physical checks (such as W191) at end of file. PR #961.
Changes:
--indent-size option (defaulting to 4). PR #970.Anthony Sottile (@asottile) joined the team as a core developer. :tada:
Announcements:
Changes:
async def. PR #929.is not. PR #931.E225: require whitespace around and in is and or. PR #847.
New checks:
and in is and or. PR #847.Changes:
istype. PR #850.l as a named argument in a function call. PR #853....) is no longer treated as a binary operator. PR #875.with, if, elif, else to guard imports. PR #834.:= (PEP 572). PR #879./ (PEP 570). PR #872, #918.@ (PEP 465). PR #897.with / assert /
raise. PR #912.E117: Over-indented code blocks
New checks:
Changes:
# noqa and fix the position reported by W605->) as requiring surrounding
whitespace only on Python 3await. Previously we allowed numbers
and strings.Prevent a 'DeprecationWarning', and a 'SyntaxError' in future python, caused by an invalid escape sequence. PR #625.
New checks:
Changes:
Bugs:
Fix regression in detection of E302 and E306; #618, #620
Bugs:
Add E722 warning for bare except clauses
New Checks:
except clausesasync def)Bugs:
async and defAdded Make target to obtain proper tarball file permissions; #599
Announcements:
Bugs:
Deprecated use of [pep8] section name in favor of [pycodestyle]; #591
Announcements:
Changes:
[pep8] section name in favor of [pycodestyle]; #591Bugs:
Repository renamed to pycodestyle; Issue #466 / #481.
Announcements:
pycodestyle; Issue #466 / #481.Changes:
from ... import ... lines; #489 / #491.pep8 configuration file; #364Bugs:
~ operator as binary; #383 / #384Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →