What's New in Pylint 3.2¶
- Release:
3.2
- Date:
TBA
Summary -- Release highlights¶
What's new in Pylint 3.2.7?¶
Release date: TBA
No significant changes.
What's new in Pylint 3.2.7?¶
Release date: 2024-08-31
False Positives Fixed¶
Fixed a false positive unreachable for NoReturn coroutine functions.
Closes #9840. (#9840)
Other Bug Fixes¶
Fix crash in refactoring checker when calling a lambda bound as a method.
Closes #9865 (#9865)
Fix a crash in
undefined-loop-variable
when providing theiterable
argument toenumerate()
.Closes #9875 (#9875)
Fix to address indeterminacy of error message in case a module name is same as another in a separate namespace.
Refs #9883 (#9883)
What's new in Pylint 3.2.6?¶
Release date: 2024-07-21
False Positives Fixed¶
Quiet false positives for unexpected-keyword-arg when pylint cannot determine which of two or more dynamically defined classes is being instantiated.
Closes #9672 (#9672)
Fix a false positive for
missing-param-doc
where a method which is decorated withtyping.overload
was expected to have a docstring specifying its parameters.Closes #9739 (#9739)
Fix a regression that raised
invalid-name
on class attributes merely overriding invalid names from an ancestor.Closes #9765 (#9765)
Treat assert_never() the same way when imported from typing_extensions.
Closes #9780 (#9780)
Fix a false positive for consider-using-min-max-builtin when the assignment target is an attribute.
Refs #9800 (#9800)
Other Bug Fixes¶
What's new in Pylint 3.2.5?¶
Release date: 2024-06-28
Other Bug Fixes¶
Fixed a false positive
unreachable-code
when usingtyping.Any
as return type in python 3.8, thetyping.NoReturn
are not taken into account anymore for python 3.8 however.Closes #9751 (#9751)
What's new in Pylint 3.2.4?¶
Release date: 2024-06-26
False Positives Fixed¶
Prevent emitting
possibly-used-before-assignment
when relying on names only potentially not defined in conditional blocks guarded by functions annotated withtyping.Never
ortyping.NoReturn
.Closes #9674 (#9674)
Other Bug Fixes¶
Fixed a crash when the lineno of a variable used as an annotation wasn't available for
undefined-variable
.Closes #8866 (#8866)
Fixed a crash when the
start
value in anenumerate
was non-constant and impossible to infer (like in``enumerate(apples, start=int(random_apple_index)``) forunnecessary-list-index-lookup
.Closes #9078 (#9078)
Fixed a crash in
symilar
when the-d
or-i
short option were not properly recognized. It's still impossible to do-d=1
(you must do-d 1
).Closes #9343 (#9343)
What's new in Pylint 3.2.3?¶
Release date: 2024-06-06
False Positives Fixed¶
Classes with only an Ellipsis (
...
) in their body do not trigger 'multiple-statements' anymore if they are inlined (in accordance with black's 2024 style).Closes #9398 (#9398)
Fix a false positive for
redefined-outer-name
when there is a name defined in an exception-handling block which shares the same name as a local variable that has been defined in a function body.Closes #9671 (#9671)
Fix a false positive for
use-yield-from
when using the return value from theyield
atom.Closes #9696 (#9696)
What's new in Pylint 3.2.2?¶
Release date: 2024-05-20
False Positives Fixed¶
What's new in Pylint 3.2.1?¶
Release date: 2024-05-18
False Positives Fixed¶
Exclude if/else branches containing terminating functions (e.g. sys.exit()) from possibly-used-before-assignment checks.
Closes #9627 (#9627)
Don't emit
typevar-name-incorrect-variance
warnings for PEP 695 style TypeVars. The variance is inferred automatically by the type checker. Adding_co
or_contra
suffix can help to reason about TypeVar.Refs #9638 (#9638)
Fix a false positive for possibly-used-before-assignment when using typing.assert_never() (3.11+) to indicate exhaustiveness.
Closes #9643 (#9643)
Other Bug Fixes¶
Fix a false negative for
--ignore-patterns
when the directory to be linted is specified using a dot(.
) and all files are ignored instead of only the files whose name begin with a dot.Closes #9273 (#9273)
Restore "errors / warnings by module" section to report output (with -ry).
Closes #9145 (#9145)
trailing-comma-tuple
should now be correctly emitted when it was disabled globally but enabled via local message control, after removal of an over-optimisation.Refs #9608. (#9608)
Add --prefer-stubs=yes option to opt-in to the astroid 3.2 feature that prefers .pyi stubs over same-named .py files. This has the potential to reduce no-member errors but at the cost of more errors such as not-an-iterable from function bodies appearing as ....
Defaults to no.
Closes #9626 Closes #9623 (#9626)
Internal Changes¶
Update astroid version to 3.2.1. This solves some reports of
RecursionError
and also makes the prefer .pyi stubs feature in astroid 3.2.0 opt-in with the aforementioned--prefer-stubs=y
option.Refs #9139 (#9139)
What's new in Pylint 3.2.0?¶
Release date: 2024-05-14
New Features¶
Understand six.PY2 and six.PY3 for conditional imports.
Closes #3501 (#3501)
A new github reporter has been added. This reporter returns the output of pylint in a format that Github can use to automatically annotate code. Use it with pylint --output-format=github on your Github Workflows.
Closes #9443. (#9443)
New Checks¶
Add check
possibly-used-before-assignment
when relying on names after anif/else
switch when one branch failed to define the name, raise, or return.Closes #1727 (#1727)
Checks for generators that use contextmanagers that don't handle cleanup properly. Is meant to raise visibility on the case that a generator is not fully exhausted and the contextmanager is not cleaned up properly. A contextmanager must yield a non-constant value and not handle cleanup for GeneratorExit. The using generator must attempt to use the yielded context value with x() as y and not just with x().
Closes #2832 (#2832)
False Negatives Fixed¶
False Positives Fixed¶
pylint now understands the @overload
decorator return values better.
Performance Improvements¶
Ignored modules are now not checked at all, instead of being checked and then ignored. This should speed up the analysis of large codebases which have ignored modules.
ImportChecker's logic has been modified to avoid context files when possible. This makes it possible to cache module searches on astroid and reduce execution times.
Refs #9310. (#9310)
An internal check for
trailing-comma-tuple
being enabled for a file or not is now done once per file instead of once for each token.Refs #9608. (#9608)