Skip to content


Choose a tag to compare
@Pierre-Sassoulas Pierre-Sassoulas released this 16 Sep 16:26
· 3124 commits to main since this release
  • The python3 porting mode checker and it's py3k option were removed. You can still find it in older pylint

  • 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 dependant 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 prefered in the documentation and correctly redirect to

    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.