Skip to content

v3.1.0

Compare
Choose a tag to compare
@Pierre-Sassoulas Pierre-Sassoulas released this 25 Feb 16:47
· 359 commits to main since this release

Two new checks--use-yield-from, deprecated-attribute-- and a smattering of bug fixes.

New Features

  • Skip consider-using-join check for non-empty separators if an suggest-join-with-non-empty-separator option is set to no.

    Closes #8701

  • Discover .pyi files when linting.

    These can be ignored with the ignore-patterns setting.

    Closes #9097

  • Check TypeAlias and TypeVar (PEP 695) nodes for invalid-name.

    Refs #9196

  • Support for resolving external toml files named pylintrc.toml and .pylintrc.toml.

    Closes #9228

  • Check for .clear, .discard, .pop and remove methods being called on a set while it is being iterated over.

    Closes #9334

New Checks

  • New message use-yield-from added to the refactoring checker. This message is emitted when yielding from a loop can be replaced by yield from.

    Closes #9229.

  • Added a deprecated-attribute message to check deprecated attributes in the stdlib.

    Closes #8855

False Positives Fixed

  • Fixed false positive for inherit-non-class for generic Protocols.

    Closes #9106

  • Exempt TypedDict from typing_extensions from too-many-ancestor checks.

    Refs #9167

False Negatives Fixed

  • Extend broad-exception-raised and broad-exception-caught to except*.

    Closes #8827

  • Fix a false-negative for unnecessary if blocks using a different than expected ordering of arguments.

    Closes #8947.

Other Bug Fixes

  • Improve the message provided for wrong-import-order check. Instead of the import statement ("import x"), the message now specifies the import that is out of order and which imports should come after it. As reported in the issue, this is particularly helpful if there are multiple imports on a single line that do not follow the PEP8 convention.

    The message will report imports as follows:
    For "import X", it will report "(standard/third party/first party/local) import X"
    For "import X.Y" and "from X import Y", it will report "(standard/third party/first party/local) import X.Y"
    The import category is specified to provide explanation as to why pylint has issued the message and guidence to the developer on how to fix the problem.

    Closes #8808

Other Changes

  • Print how many files were checked in verbose mode.

    Closes #8935

  • Fix a crash when an enum class which is also decorated with a dataclasses.dataclass decorator is defined.

    Closes #9100

Internal Changes

  • Update astroid version to 3.1.0.

    Refs #9457