Skip to content

v3.2.0

Compare
Choose a tag to compare
@jacobtylerwalls jacobtylerwalls released this 14 May 11:53
· 268 commits to main since this release

What's new in Pylint 3.2.0?

Release date: 2024-05-14

Of note: a github reporter, two new checks (possibly-used-before-assignment and contextmanager-generator-missing-cleanup), performance improvements, and an astroid upgrade providing support for @overload and .pyi stubs.

New Features

  • Understand six.PY2 and six.PY3 for conditional imports.

    Closes #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.

New Checks

  • Add check possibly-used-before-assignment when relying on names after an if/else
    switch when one branch failed to define the name, raise, or return.

    Closes #1727

  • Checks 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 just with x().

    Closes #2832

False Negatives Fixed

  • If and Try nodes are now checked for useless return statements as well.

    Closes #9449.

  • Fix false negative for property-with-parameters in the case of parameters which are positional-only, keyword-only, variadic positional or variadic keyword.

    Closes #9584

False Positives Fixed

  • pylint now understands the @overload decorator return values better.

    Closes #4696
    Refs #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 #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 #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.