What's New in Pylint 2.12





Summary -- Release highlights

New checkers

  • Added missing-any-param-doc triggered when a function has neither parameter nor parameter type documentation. Undocumented parameters are now being properly identified. A warning might start to appear unexpectedly if missing-param-doc and missing-type-doc were disabled, as a new message missing-any-param-doc will be emitted instead.

    Closes #3799

  • Checkers for typing.final

    • Added overridden-final-method: Emitted when a method which is annotated with typing.final is overridden

    • Added subclassed-final-class: Emitted when a class which is annotated with typing.final is subclassed

    Closes #3197

  • Created new UnsupportedVersionChecker checker class that includes checks for features not supported by all versions indicated by a py-version.

    • Added using-f-string-in-unsupported-version checker. Issued when py-version is set to a version that does not support f-strings (< 3.6)

  • Fix useless-super-delegation false positive when default keyword argument is a variable.

  • Added new checker use-implicit-booleanness`: Emitted when using collection literals for boolean comparisons

  • Added new checker use-implicit-booleaness-not-comparison: Emitted when collection literal comparison is being used to check for emptiness.

    Closes #4774

Removed checkers


Other Changes

  • Improve and flatten unused-wildcard-import message

    Closes #3859

  • In length checker, len-as-condition has been renamed as use-implicit-booleaness-not-len in order to be consistent with use-implicit-booleaness-not-comparison.

  • Update literal-comparison` checker to ignore tuple literals

    Closes #3031

  • undefined-variable now correctly flags variables which only receive a type annotations and never get assigned a value

    Closes #5140

  • undefined-variable now correctly considers the line numbering and order of classes used in metaclass declarations

    Closes #4031

  • used-before-assignment now correctly considers references to classes as type annotation or default values in first-level methods

    Closes #3771

  • Fix double emitting of not-callable on inferrable properties

    Closes #4426

  • Normalize the input to the ignore-paths option to allow both Posix and Windows paths

    Closes #5194

  • mising-param-doc now correctly parses asterisks for variable length and keyword parameters

    Closes #3733