What's New in Pylint 2.8#

Release

2.8

Date

2021-04-24

Summary -- Release highlights#

Breaking changes#

  • The 'doc' extra-require has been removed. __pkginfo__` does not contain the package metadata anymore (except numversion, until 3.0). Meta-information are accessible with

`python from importlib import metadata metadata.metadata('pylint') ` Prefer that to an import from __pkginfo__.

New checkers#

  • New refactoring message consider-using-with. This message is emitted if resource-allocating functions or methods of the standard library (like open() or threading.Lock.acquire()) that can be used as a context manager are called without a with block.

  • Add deprecated-argument check for deprecated arguments.

  • Add new extension ConfusingConsecutiveElifChecker. This optional checker emits a refactoring message (R5601 confusing-consecutive-elif) if if/elif statements with different indentation levels follow directly one after the other.

  • Add consider-using-min-max-builtin check for if statement which could be replaced by Python builtin min or max.

  • Add new extension TypingChecker. This optional checker can detect the use of deprecated typing aliases and can suggest the use of the alternative union syntax where possible. (For example, 'typing.Dict' can be replaced by 'dict', and 'typing.Unions' by '|', etc.) Make sure to check the config options if you plan on using it!

  • Add deprecated-class check for deprecated classes.

Other Changes#

  • New option --output=<file> to output result to a file rather than printing to stdout.

    Closes #1070

  • Reduce usage of blacklist/whitelist terminology. Notably, extension-pkg-allow-list is an alternative to extension-pkg-whitelist and the message blacklisted-name is now emitted as disallowed-name. The previous names are accepted to maintain backward compatibility.

  • The packaging is now done via setuptools exclusively. doc, tests, man, elisp and Changelog are not packaged anymore - reducing the size of the package by 75%.

  • Updated astroid to 2.5.4

  • COPYING has been renamed to LICENSE for standardization.