- Require Python 3.8 or later.
- Drop support for Python 3.7.
- Add support for Python 3.12.
- Ignore methods decorated by
@typing.override
. - Perform case-sensitive
ignore-names
globbing on all platforms.
- Formally require flake8 5.0.0 or later.
- Add support for Python 3.11.
- Formally require Python 3.7 or later using
python_requires
.
- Fix warnings related to deprecated options syntax.
- Python 3.7 or later is now required.
setUpModule
andtearDownModule
are now exempted by default.
- Fix potential stack exhaustion in the N818 check.
- flake8 3.9.1 or later is now required.
- N818 checks exception class names for an "Error" suffix (disabled by default).
asyncSetUp
andasyncTearDown
are now exempted by default.
- Fix an AST-related AttributeError when processing decorator lists.
__class_getitem__
is now recognized as a class method.- Support
ast.Call
nodes in decorator lists (@decorator(arg)
). - As a performance improvement, only checks for selected error codes are run.
--ignore-names
now supports globbing and applies to the N804 and N805 checks.- "acronym" imports are now treated as their own error code (N817).
- Metaclass detection has been improved.
- Annotated variable declarations (PEP 526) and
:=
variable assignments are now supported.
- Fix line number offsets when reporting errors involving functions with decorators in Python 3.8 and later.
- Drop support for Python 3.3 and 3.4.
- Support positional-only arguments in Python 3.8.
- Recognize
abc.ABCMeta
as a metaclass base type. ignore-names
now also applies to the N803 check.- Handle assigning exceptions to object attributes in Python 2.
- Fix a problem with
ignore-names
option initialization.
ignore-names
now also applies to the N806, N815, and N816 checks.failureException
,longMessage
, andmaxDiff
have been added to the defaultignore-names
list.- Allow lowercase names to be imported as just
_
. - Allow function arguments to be named just
_
. - Support Python 2's tuple syntax in
except
clauses.
- Detect N806 errors within
for
loops and exception handlers. - Improve support for non-ASCII characters.
- Detect mixedCased variable names at class (N815) and global (N816) scope.
- Ignore Django's
setUpTestData
method by default. - Fix column offsets for N803, N804, and N805 under Python 3.
- Detect underscores within class names as N801 errors.
- Don't flag
__getattr__
and__dir__
as N807 errors. (See PEP 562). async
function and method names are now checked.- Detect N806 errors in generator expressions and comprehensions.
- Detect N81x errors in
import x as y
statements.
- Detect N806 in
with ... as ...:
statements. - Detect N806 in multiple assignment statements, e.g.,
Foo, Bar = unpacking
. - Allow class names to be properly ignored.
- Remove spurious 'xxx' from error message
- Detect N807 within conditional statements.
- Fix N804 check for
cls
used in metaclass methods (See also #53)
- Separate check for
__
in function names to its own code: N807 - Consider all metaclass methods to be class methods
- Add configurable list of classmethod and staticmethod decorators
- Print the offending name as part of the error message
- Correct N804/N805 for __init_subclass__
- Note to self: Never do releases before ~0600 or coffee on a Sunday.
- Fix option parsing for Flake8 3.0 (store parsed value on class)
- Fix integration with Flake8 3.0.0b1
- Start testing against Python 3.5
- Fix bug where ignored names were not properly split into a list.
- Fix bug trying to call
split
on a list.
- Fix optparse exception resulting from trying to register an option twice.
- Relaxed N806 checking for use with namedtuples
- Add
--ignore-names
which allows the user to specify a list of names to ignore. By default this includessetUp
,tearDown
,setUpClass
, andtearDownClass
.
- Do not require
setuptools
in setup.py. It works around an issue withpip
and Python 3. __new__
is now considered asclassmethod
implicitly- Run unit tests on travis-ci.org for python2.6, 2.7, 3.2, and 3.3
- Add unit tests and support running them with setup.py
- Support Python 3.4
- Do not require
flake8
- Rename project
flint-naming
topep8-naming
- Fix a crash when function argument is a tuple of tuples
- First release