- N808 now allows type variable names to start with an underscore.
- Add support for Python 3.13.
- Drop support for Python 3.8.
- N808 checks type variable names use the CapWords convention and have an appropriate suffix.
- 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-namesglobbing 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.
setUpModuleandtearDownModuleare 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).
asyncSetUpandasyncTearDownare now exempted by default.
- Fix an AST-related AttributeError when processing decorator lists.
__class_getitem__is now recognized as a class method.- Support
ast.Callnodes in decorator lists (@decorator(arg)). - As a performance improvement, only checks for selected error codes are run.
--ignore-namesnow 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.ABCMetaas a metaclass base type. ignore-namesnow also applies to the N803 check.- Handle assigning exceptions to object attributes in Python 2.
- Fix a problem with
ignore-namesoption initialization.
ignore-namesnow also applies to the N806, N815, and N816 checks.failureException,longMessage, andmaxDiffhave been added to the defaultignore-nameslist.- Allow lowercase names to be imported as just
_. - Allow function arguments to be named just
_. - Support Python 2's tuple syntax in
exceptclauses.
- Detect N806 errors within
forloops and exception handlers. - Improve support for non-ASCII characters.
- Detect mixedCased variable names at class (N815) and global (N816) scope.
- Ignore Django's
setUpTestDatamethod 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). asyncfunction and method names are now checked.- Detect N806 errors in generator expressions and comprehensions.
- Detect N81x errors in
import x as ystatements.
- 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
clsused 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
spliton a list.
- Fix optparse exception resulting from trying to register an option twice.
- Relaxed N806 checking for use with namedtuples
- Add
--ignore-nameswhich allows the user to specify a list of names to ignore. By default this includessetUp,tearDown,setUpClass, andtearDownClass.
- Do not require
setuptoolsin setup.py. It works around an issue withpipand Python 3. __new__is now considered asclassmethodimplicitly- 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-namingtopep8-naming - Fix a crash when function argument is a tuple of tuples
- First release