Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What's new in Pylint 3.2.0?
Release date: 2024-05-14
New Features
Understand
six.PY2
andsix.PY3
for conditional imports.Closes conditional import against six.PY2 emits error #3501
A new
github
reporter has been added. This reporter returns the output ofpylint
in a format thatGithub can use to automatically annotate code. Use it with
pylint --output-format=github
on your Github Workflows.Closes GitHub actions output format #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
used-before-assignment
false negative after conditionals #1727Checks for generators that use contextmanagers that don't handle cleanup properly.
Is meant to raise visibilty 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 justwith x()
.Closes Warn about @contextlib.contextmanager without try/finally in generator functions #2832
False Negatives Fixed
If and Try nodes are now checked for useless return statements as well.
Closes Nonsensical returns are not reported as
useless-return
if they are indented #9449.Fix false negative for
property-with-parameters
in the case of parameters which arepositional-only
,keyword-only
,variadic positional
orvariadic keyword
.Closes
property-with-parameters
only cares about non-self
parameters if they're positional-or-keyword parameters #9584False Positives Fixed
pylint now understands the
@overload
decorator return values better.Closes methods that return a sequence yield unpacking-non-sequence #4696
Refs Bump astroid to 3.2.0 #9606
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.
Closes Azure import try/except over doubles pylint memory usage #9442
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 E0401 (import-error) checks perform a lot of repeated stat calls #9310.
An internal check for
trailing-comma-tuple
being enabled for a file or not is nowdone once per file instead of once for each token.
Refs R1707 (trailing-comma-tuple) checks perform excessive is_message_enabled calls #9608.