Full changelog¶
What's New in Pylint 2.9.6?¶
Release date: 2021-07-28
Fix a false positive
undefined-variable
when variable name in decoration matches function argumentCloses #3791
What's New in Pylint 2.9.5?¶
Release date: 2021-07-21
Fix a crash when there would be a 'TypeError object does not support item assignment' in the code we parse.
Closes #4439
Fix crash if a callable returning a context manager was assigned to a list or dict item
Closes #4732
Fix a crash when an AttributeInferenceError was not handled properly when failing to infer the real name of an import in astroid.
Closes #4692
What's New in Pylint 2.9.4?¶
Release date: 2021-07-20
Added
time.clock
to deprecated functions/methods for python 3.3Fix bug in which --fail-on can return a zero exit code even when the specified issue is present
Closes #4296 Closes #3363
Fix hard failure when handling missing attribute in a class with duplicated bases
Closes #4687
Fix false-positive
consider-using-with
(R1732) if a ternary conditional is used together withwith
Closes #4676
Fix false-positive
deprecated-module
when relative import uses deprecated module name.Closes #4629
Fix false-positive
consider-using-with
(R1732) ifcontextlib.ExitStack
takes care of calling the__exit__
methodCloses #4654
Fix a false positive for
unused-private-member
when mutating a private attribute withcls
Closes #4657
Fix ignored empty functions by similarities checker with "ignore-signatures" option enabled
Closes #4652
Fix false-positive of
use-maxsplit-arg
when index is incremented in a loopCloses #4664
Don't emit
cyclic-import
message if import is guarded bytyping.TYPE_CHECKING
.Closes #3525
Fix false-positive
not-callable
with alternativeTypedDict
syntaxCloses #4715
Clarify documentation for consider-using-from-import
Don't emit
unreachable
warning for empty generator functionsCloses #4698
Don't emit
import-error
,no-name-in-module
, andungrouped-imports
for imports guarded bysys.version_info
ortyping.TYPE_CHECKING
.Closes #3285 Closes #3382
Fix
invalid-overridden-method
with nested propertyCloses #4368
Fix false-positive of
unused-private-member
when using__new__
in a classCloses #4668
No longer emit
consider-using-with
forThreadPoolExecutor
andProcessPoolExecutor
as they have legitimate use cases without awith
block.Closes #4689
Fix crash when inferring variables assigned in match patterns
Closes #4685
Fix a crash when a StopIteration was raised when inferring a faulty function in a context manager.
Closes #4723
What's New in Pylint 2.9.3?¶
Release date: 2021-07-01
Fix a crash that happened when analysing empty function with docstring in the
similarity
checker.Closes #4648
The
similarity
checker no longer add three trailing whitespaces for empty lines in its report.
What's New in Pylint 2.9.2?¶
Release date: 2021-07-01
Fix a crash that happened when analysing code using
type(self)
to access a class attribute in theunused-private-member
checker.Closes #4638
Fix a false positive for
unused-private-member
when accessing a private variable withself
Closes #4644
Fix false-positive of
unnecessary-dict-index-lookup
andconsider-using-dict-items
for reassigned dict index lookupsCloses #4630
What's New in Pylint 2.9.1?¶
Release date: 2021-06-30
Upgrade astroid to 2.6.2
Closes #4631 Closes #4633
What's New in Pylint 2.9.0?¶
Release date: 2021-06-29
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.Closes #4117 Closes #4593
setuptools_scm
has been removed and replaced bytbump
in order to not have hidden runtime dependencies to setuptoolsFix 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.Closes #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
moduleCloses #4166 Closes #4415
Stdlib deprecated modules check is moved to stdlib checker. New deprecated modules are added.
Fix raising false-positive
no-member
on abstract propertiesCreated 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' instead
Closes #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.10New 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 astroidCloses #1932 Closes #2062
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