Skip to content

Releases: pylint-dev/pylint

v3.3.5

09 Mar 06:47
aaab3cc
Compare
Choose a tag to compare

What's new in Pylint 3.3.5?

Release date: 2025-03-09

False Positives Fixed

  • Fix false positives for use-implicit-booleaness-not-comparison, use-implicit-booleaness-not-comparison-to-string
    and use-implicit-booleaness-not-comparison-to-zero when chained comparisons are checked.

    Closes #10065

  • Fix a false positive for invalid-getnewargs-ex-returned when the tuple or dict has been assigned to a name.

    Closes #10208

  • Remove getopt and optparse from the list of deprecated modules.

    Closes #10211

Other Bug Fixes

  • Fixed conditional import x.y causing false positive possibly-used-before-assignment.

    Closes #10081

  • Fix a crash when something besides a class is found in an except handler.

    Closes #10106

  • Fixed raising invalid-name when using camelCase for private methods with two leading underscores.

    Closes #10189

Other Changes

  • Upload release assets to PyPI via Trusted Publishing.

    Closes #10256

v3.3.5a0

08 Mar 22:20
Compare
Choose a tag to compare
v3.3.5a0 Pre-release
Pre-release

Test for #10263

v3.3.4

28 Jan 13:27
Compare
Choose a tag to compare

Other Bug Fixes

  • Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number.

    Closes #10073

  • Fixes a crash that occurred when pylint was run in a container on a host with cgroupsv2 and restrictions on CPU usage.

    Closes #10103

  • Relaxed the requirements for isort so pylint can benefit from isort 6.

    Closes #10203

v3.3.3

24 Dec 02:30
Compare
Choose a tag to compare

What's new in Pylint 3.3.3?

Release date: 2024-12-23

False Positives Fixed

  • Fix false positives for undefined-variable for classes using Python 3.12
    generic type syntax.

    Closes #9335

  • Fix a false positive for use-implicit-booleaness-not-len. No lint should be emitted for
    generators (len is not defined for generators).

    Refs #10100

Other Bug Fixes

  • Fix Unable to import 'collections.abc' (import-error) on Python 3.13.1.

    Closes #10112

v3.3.2

01 Dec 18:45
a5a1bc3
Compare
Choose a tag to compare

False Positives Fixed

  • Fix a false positive for potential-index-error when an indexed iterable
    contains a starred element that evaluates to more than one item.

    Closes #10076

Other Bug Fixes

  • Fixes the issue with --source-root option not working when the source files are in a subdirectory of the source root (e.g. when using a /src layout).

    Closes #10026

v3.3.1

24 Sep 11:10
76bce72
Compare
Choose a tag to compare

What's new in Pylint 3.3.1?

Release date: 2024-09-24

False Positives Fixed

  • Fix regression causing some f-strings to not be inferred as strings.

    Closes #9947

v3.3.0

20 Sep 13:03
Compare
Choose a tag to compare

Release date: 2024-09-20

Changes requiring user actions

  • We migrated symilar to argparse, from getopt, so the error and help output changed
    (for the better). We exit with 2 instead of sometime 1, sometime 2. The error output
    is not captured by the runner anymore. It's not possible to use a value for the
    boolean options anymore (--ignore-comments 1 should become --ignore-comments).

    Refs #9731

New Features

  • Add new declare-non-slot error which reports when a class has a __slots__ member and a type hint on the class is not present in __slots__.

    Refs #9499

New Checks

  • Added too-many-positional-arguments to allow distinguishing the configuration for too many
    total arguments (with keyword-only params specified after *) from the configuration
    for too many positional-or-keyword or positional-only arguments.

    As part of evaluating whether this check makes sense for your project, ensure you
    adjust the value of --max-positional-arguments.

    Closes #9099

  • Add using-exception-groups-in-unsupported-version and
    using-generic-type-syntax-in-unsupported-version for uses of Python 3.11+ or
    3.12+ features on lower supported versions provided with --py-version.

    Closes #9791

  • Add using-assignment-expression-in-unsupported-version for uses of := (walrus operator)
    on Python versions below 3.8 provided with --py-version.

    Closes #9820

  • Add using-positional-only-args-in-unsupported-version for uses of positional-only args on
    Python versions below 3.8 provided with --py-version.

    Closes #9823

  • Add unnecessary-default-type-args to the typing extension to detect the use
    of unnecessary default type args for typing.Generator and typing.AsyncGenerator.

    Refs #9938

False Negatives Fixed

  • Fix computation of never-returning function: Never is handled in addition to NoReturn, and priority is given to the explicit --never-returning-functions option.

    Closes #7565.

  • Fix a false negative for await-outside-async when await is inside Lambda.

    Refs #9653

  • Fix a false negative for duplicate-argument-name by including positional-only, *args and **kwargs arguments in the check.

    Closes #9669

  • Fix false negative for multiple-statements when multiple statements are present on else and finally lines of try.

    Refs #9759

  • Fix false negatives when isinstance does not have exactly two arguments.
    pylint now emits a too-many-function-args or no-value-for-parameter
    appropriately for isinstance calls.

    Closes #9847

Other Bug Fixes

  • --enable with --disable=all now produces an error, when an unknown msg code is used. Internal pylint messages are no longer affected by --disable=all.

    Closes #9403

  • Impossible to compile regexes for paths in the configuration or argument given to pylint won't crash anymore but
    raise an argparse error and display the error message from re.compile instead.

    Closes #9680

  • Fix a bug where a tox.ini file with pylint configuration was ignored and it exists in the current directory.

    .cfg and .ini files containing a Pylint configuration may now use a section named [pylint]. This enhancement impacts the scenario where these file types are used as defaults when they are present and have not been explicitly referred to, using the --rcfile option.

    Closes #9727

  • Improve file discovery for directories that are not python packages.

    Closes #9764

Other Changes

  • Remove support for launching pylint with Python 3.8.
    Code that supports Python 3.8 can still be linted with the --py-version=3.8 setting.

    Refs #9774

  • Add support for Python 3.13.

    Refs #9852

Internal Changes

  • All variables, classes, functions and file names containing the word 'similar', when it was,
    in fact, referring to 'symilar' (the standalone program for the duplicate-code check) were renamed
    to 'symilar'.

    Closes #9734

  • Remove old-style classes (Python 2) code and remove check for new-style class since everything is new-style in Python 3. Updated doc for exception checker to remove reference to new style class.

    Refs #9925

v3.2.7

31 Aug 14:25
Compare
Choose a tag to compare

What's new in Pylint 3.2.7?

Release date: 2024-08-31

False Positives Fixed

  • Fixed a false positive unreachable for NoReturn coroutine functions.

    Closes #9840

Other Bug Fixes

  • Fix crash in refactoring checker when calling a lambda bound as a method.

    Closes #9865

  • Fix a crash in undefined-loop-variable when providing the iterable argument to enumerate().

    Closes #9875

  • Fix to address indeterminacy of error message in case a module name is same as another in a separate namespace.

    Refs #9883

v3.2.6

21 Jul 19:48
da19566
Compare
Choose a tag to compare

What's new in Pylint 3.2.6?

Release date: 2024-07-21

False Positives Fixed

  • Quiet false positives for unexpected-keyword-arg when pylint cannot
    determine which of two or more dynamically defined classes is being instantiated.

    Closes #9672

  • Fix a false positive for missing-param-doc where a method which is decorated with typing.overload was expected to have a docstring specifying its parameters.

    Closes #9739

  • Fix a regression that raised invalid-name on class attributes merely
    overriding invalid names from an ancestor.

    Closes #9765

  • Treat assert_never() the same way when imported from typing_extensions.

    Closes #9780

  • Fix a false positive for consider-using-min-max-builtin when the assignment target is an attribute.

    Refs #9800

Other Bug Fixes

  • Fix an AssertionError arising from properties that return partial functions.

    Closes #9214

  • Fix a crash when a subclass extends __slots__.

    Closes #9814

v3.2.5

28 Jun 13:09
ae730ac
Compare
Choose a tag to compare

What's new in Pylint 3.2.5 ?

Release date: 2024-06-28

Other Bug Fixes

  • Fixed a false positive unreachable-code when using typing.Any as return type in python
    3.8, the typing.NoReturn are not taken into account anymore for python 3.8 however.

    Closes #9751