Full changelog#

What's New in Pylint 2.11.1?#

Release date: 2021-09-16

  • unspecified-encoding now checks the encoding of pathlib.Path() correctly

    Closes #5017

What's New in Pylint 2.11.0?#

Release date: 2021-09-16

  • The python3 porting mode checker and it's py3k option were removed. You can still find it in older pylint versions.

  • raising-bad-type is now properly emitted when raising a string

  • Added new extension SetMembershipChecker with use-set-for-membership check: Emitted when using an in-place defined list or tuple to do a membership test. sets are better optimized for that.

    Closes #4776

  • Added py-version config key (if [MASTER] section). Used for version dependent checks. Will default to whatever Python version pylint is executed with.

  • CodeStyleChecker: Added consider-using-assignment-expr: Emitted when an assignment is directly followed by an if statement and both can be combined by using an assignment expression :=. Requires Python 3.8

    Closes #4862

  • Added consider-using-f-string: Emitted when .format() or '%' is being used to format a string.

    Closes #3592

  • Fix false positive for consider-using-with if a context manager is assigned to a variable in different paths of control flow (e. g. if-else clause).

    Closes #4751

  • https is now preferred in the documentation and http://pylint.pycqa.org correctly redirect to https://pylint.pycqa.org

    Closes #3802

  • Fix false positive for function-redefined for simple type annotations

    Closes #4936

  • Fix false positive for protected-access if a protected member is used in type hints of function definitions

  • Fix false positive dict-iter-missing-items for dictionaries only using tuples as keys

    Closes #3282

  • The unspecified-encoding checker now also checks calls to pathlib.Path().read_text() and pathlib.Path().write_text()

    Closes #4945

  • Fix false positive superfluous-parens for tuples created with inner tuples

    Closes #4907

  • Fix false positive unused-private-member for accessing attributes in a class using cls

    Closes #4849

  • Fix false positive unused-private-member for private staticmethods accessed in classmethods.

    Closes #4849

  • Extended consider-using-in check to work for attribute access.

  • Setting min-similarity-lines to 0 now makes the similarty checker stop checking for duplicate code

    Closes #4901

  • Fix a bug where pylint complained if the cache's parent directory does not exist

    Closes #4900

  • The global-variable-not-assigned checker now catches global variables that are never reassigned in a local scope and catches (reassigned) functions

    Closes #1375 Closes #330

  • Fix false positives for invalid-all-format that are lists or tuples at runtime

    Closes #4711

  • Fix no-self-use and docparams extension for async functions and methods.

  • Add documentation for pyreverse and symilar

    Closes #4616

  • Non symbolic messages with the wrong capitalisation now correctly trigger use-symbolic-message-instead

    Closes #5000

  • The consider-iterating-dictionary checker now also considers membership checks

    Closes #4069

  • The invalid-name message is now more detailed when using multiple naming style regexes.