v2.9.0
-
Python 3.10 is now supported.
-
Add type annotations to pyreverse dot files
Closes #1548
-
Fix missing support for detecting deprecated aliases to existing
functions/methods.Closes #4618
-
astroid has been upgraded to 2.6.1
-
Added various deprecated functions/methods for python 3.10, 3.7, 3.6 and 3.3
-
Fix false positive
useless-type-doc
on ignored argument usingpylint.extensions.docparams
when a function was typed using pep484 but not inside the docstring. -
setuptools_scm
has been removed and replaced bytbump
in order to not
have hidden runtime dependencies to setuptools -
Fix a crash when a test function is decorated with
@pytest.fixture
and astroid can't
infer the name of the decorator when usingopen
withoutwith
.Closes #4612
-
Added
deprecated-decorator
: Emitted when deprecated decorator is used.Closes #4429
-
Added
ignore-paths
behaviour. Defined regex patterns are matched against full file path.Close #2541
-
Fix false negative for
consider-using-with
if calls likeopen()
were used outside of assignment expressions. -
The warning for
arguments-differ
now signals explicitly the difference it detected
by naming the argument or arguments that changed and the type of change that occurred. -
Suppress
consider-using-with
inside context managers.Closes #4430
-
Added
--fail-on
option to return non-zero exit codes regardless of--fail-under
value. -
numversion tuple contains integers again to fix multiple pylint's plugins that relied on it
Closes #4420
-
Fix false-positive
too-many-ancestors
when inheriting from builtin classes,
especially from thecollections.abc
module -
Stdlib deprecated modules check is moved to stdlib checker. New deprecated
modules are added. -
Fix raising false-positive
no-member
on abstract properties -
Created new error message called
arguments-renamed
which identifies any changes at the parameter
names of overridden functions.Closes #3536
-
New checker
consider-using-dict-items
. Emitted when iterating over dictionary keys and then
indexing the same dictionary with the key within loop body.Closes #3389
-
Don't emit
import-error
if import guarded behindif sys.version_info >= (x, x)
-
Fix incompatibility with Python 3.6.0 caused by
typing.Counter
andtyping.NoReturn
usageCloses #4412
-
New checker
use-maxsplit-arg
. Emitted either when accessing only the first or last
element ofstr.split()
.Closes #4440
-
Add ignore_signatures to duplicate code checker
Closes #3619
-
Fix documentation errors in "Block disables" paragraph of User Guide.
-
New checker
unnecessary-dict-index-lookup
. Emitted when iterating over dictionary items
(key-value pairs) and accessing the value by index lookup.Closes #4470
-
New checker
consider-using-from-import
. Emitted when a submodule/member of a package is imported and aliased
with the same name.Closes #2309
-
Allow comma-separated list in
output-format
and separate output files for
each specified format.Closes #1798
-
Make
using-constant-test
detect constant tests consisting of list literals like[]
and
[1, 2, 3]
. -
Improved error message of
unnecessary-comprehension
checker by providing code suggestion.Closes #4499
-
New checker
unused-private-member
. Emitted when a private member (i.e., starts with__
) of a class
is defined but not used.Closes #4483
-
Fix false negative of
consider-using-enumerate
when iterating over an attribute.Closes #3657
-
New checker
invalid-class-object
. Emitted when a non-class is assigned to a__class__
attribute.Closes #585
-
Fix a crash when a plugin from the configuration could not be loaded and raise an error
'bad-plugin-value' insteadCloses #4555
-
Added handling of floating point values when parsing configuration from pyproject.toml
Closes #4518
-
invalid-length-returned
, now also works when nothing at all is returned
following an upgrade in astroid. -
logging-format-interpolation
andlogging-not-lazy
, now works on logger
class created from renamed logging import following an upgrade in astroid. -
Fix false-positive
no-member
with generic base classCloses pylint-dev/astroid#942
-
Fix
assigning-non-slot
false-positive with base that inherits fromtyping.Generic
Closes #4509
Closes pylint-dev/astroid#999 -
New checker
invalid-all-format
. Emitted when__all__
has an invalid format,
i.e. isn't atuple
orlist
. -
Fix false positive
unused-variable
andundefined-variable
with
Pattern Matching in Python 3.10 -
New checker
await-outside-async
. Emitted when await is used outside an async function. -
Clarify documentation for
typing
extension.Closes #4545
-
Add new extension
CodeStyleChecker
. It includes checkers that can improve code
consistency. As such they don't necessarily provide a performance benefit
and are often times opinionated. -
New checker
consider-using-tuple
. Emitted when an in-place defined
list or set can be replaced by a tuple. -
New checker
consider-using-namedtuple-or-dataclass
. Emitted when dictionary values
can be replaced by namedtuples or dataclass instances. -
Fix error that occurred when using
slice
as subscript for dict. -
Reduce false-positives around inference of
.value
and.name
properties onEnum
subclasses, following an upgrade in astroid -
Fix issue with
cached_property
that causedinvalid-overridden-method
error
when overriding aproperty
.Closes #4023
-
Fix
unused-import
false positive for imported modules referenced in
attribute lookups in type comments.Closes #4603