Full changelog¶
What's New in Pylint 2.9.6?¶
Release date: 2021-07-28
Fix a false positive
undefined-variablewhen 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.clockto 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 withwithCloses #4676
Fix false-positive
deprecated-modulewhen relative import uses deprecated module name.Closes #4629
Fix false-positive
consider-using-with(R1732) ifcontextlib.ExitStacktakes care of calling the__exit__methodCloses #4654
Fix a false positive for
unused-private-memberwhen mutating a private attribute withclsCloses #4657
Fix ignored empty functions by similarities checker with "ignore-signatures" option enabled
Closes #4652
Fix false-positive of
use-maxsplit-argwhen index is incremented in a loopCloses #4664
Don't emit
cyclic-importmessage if import is guarded bytyping.TYPE_CHECKING.Closes #3525
Fix false-positive
not-callablewith alternativeTypedDictsyntaxCloses #4715
Clarify documentation for consider-using-from-import
Don't emit
unreachablewarning for empty generator functionsCloses #4698
Don't emit
import-error,no-name-in-module, andungrouped-importsfor imports guarded bysys.version_infoortyping.TYPE_CHECKING.Closes #3285 Closes #3382
Fix
invalid-overridden-methodwith nested propertyCloses #4368
Fix false-positive of
unused-private-memberwhen using__new__in a classCloses #4668
No longer emit
consider-using-withforThreadPoolExecutorandProcessPoolExecutoras they have legitimate use cases without awithblock.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
similaritychecker.Closes #4648
The
similaritychecker 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-memberchecker.Closes #4638
Fix a false positive for
unused-private-memberwhen accessing a private variable withselfCloses #4644
Fix false-positive of
unnecessary-dict-index-lookupandconsider-using-dict-itemsfor 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-docon ignored argument usingpylint.extensions.docparamswhen a function was typed using pep484 but not inside the docstring.Closes #4117 Closes #4593
setuptools_scmhas been removed and replaced bytbumpin order to not have hidden runtime dependencies to setuptoolsFix a crash when a test function is decorated with
@pytest.fixtureand astroid can't infer the name of the decorator when usingopenwithoutwith.Closes #4612
Added
deprecated-decorator: Emitted when deprecated decorator is used.Closes #4429
Added
ignore-pathsbehaviour. Defined regex patterns are matched against full file path.Closes #2541
Fix false negative for
consider-using-withif calls likeopen()were used outside of assignment expressions.The warning for
arguments-differnow signals explicitly the difference it detected by naming the argument or arguments that changed and the type of change that occurred.Suppress
consider-using-withinside context managers.Closes #4430
Added
--fail-onoption to return non-zero exit codes regardless of--fail-undervalue.numversion tuple contains integers again to fix multiple pylint's plugins that relied on it
Closes #4420
Fix false-positive
too-many-ancestorswhen inheriting from builtin classes, especially from thecollections.abcmoduleCloses #4166 Closes #4415
Stdlib deprecated modules check is moved to stdlib checker. New deprecated modules are added.
Fix raising false-positive
no-memberon abstract propertiesCreated new error message called
arguments-renamedwhich 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-errorif import guarded behindif sys.version_info >= (x, x)Fix incompatibility with Python 3.6.0 caused by
typing.Counterandtyping.NoReturnusageCloses #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-formatand separate output files for each specified format.Closes #1798
Make
using-constant-testdetect constant tests consisting of list literals like[]and[1, 2, 3].Improved error message of
unnecessary-comprehensionchecker 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-enumeratewhen 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-interpolationandlogging-not-lazy, now works on logger class created from renamed logging import following an upgrade in astroid.Fix false-positive
no-memberwith generic base classCloses PyCQA/astroid#942
Fix
assigning-non-slotfalse-positive with base that inherits fromtyping.GenericCloses #4509 Closes PyCQA/astroid#999
New checker
invalid-all-format. Emitted when__all__has an invalid format, i.e. isn't atupleorlist.Fix false positive
unused-variableandundefined-variablewith Pattern Matching in Python 3.10New checker
await-outside-async. Emitted when await is used outside an async function.Clarify documentation for
typingextension.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
sliceas subscript for dict.Reduce false-positives around inference of
.valueand.nameproperties onEnumsubclasses, following an upgrade in astroidCloses #1932 Closes #2062
Fix issue with
cached_propertythat causedinvalid-overridden-methoderror when overriding aproperty.Closes #4023
Fix
unused-importfalse positive for imported modules referenced in attribute lookups in type comments.Closes #4603