What's New in Pylint 3.3¶
:Release:3.3 :Date: 2024-09-20
Summary -- Release highlights¶
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 (#10065)
Fix a false positive for
invalid-getnewargs-ex-returned
when the tuple or dict has been assigned to a name.Closes #10208 (#10208)
Remove getopt and optparse from the list of deprecated modules.
Closes #10211 (#10211)
Other Bug Fixes¶
Fixed conditional import x.y causing false positive possibly-used-before-assignment.
Closes #10081 (#10081)
Fix a crash when something besides a class is found in an except handler.
Closes #10106 (#10106)
Fixed raising invalid-name when using camelCase for private methods with two leading underscores.
Closes #10189 (#10189)
Other Changes¶
Upload release assets to PyPI via Trusted Publishing.
Closes #10256 (#10256)
What's new in Pylint 3.3.4?¶
Release date: 2025-01-28
Other Bug Fixes¶
Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number.
Closes #10073 (#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 (#10103)
Relaxed the requirements for isort so pylint can benefit from isort 6.
Closes #10203 (#10203)
What's new in Pylint 3.3.3?¶
Release date: 2024-12-23
False Positives Fixed¶
Other Bug Fixes¶
Fix
Unable to import 'collections.abc' (import-error)
on Python 3.13.1.Closes #10112 (#10112)
What's new in Pylint 3.3.2?¶
Release date: 2024-12-01
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 (#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 (#10026)
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 (#9947)
What's new in Pylint 3.3.0?¶
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 (#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 (#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 (#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 (#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 (#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 (#9823)
Add
unnecessary-default-type-args
to thetyping
extension to detect the use of unnecessary default type args fortyping.Generator
andtyping.AsyncGenerator
.Refs #9938 (#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. (#7565)
Fix a false negative for await-outside-async when await is inside Lambda.
Refs #9653 (#9653)
Fix a false negative for
duplicate-argument-name
by includingpositional-only
,*args
and**kwargs
arguments in the check.Closes #9669 (#9669)
Fix false negative for multiple-statements when multiple statements are present on else and finally lines of try.
Refs #9759 (#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 (#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 (#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 (#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 aPylint
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 (#9727)
Improve file discovery for directories that are not python packages.
Closes #9764 (#9764)
Other Changes¶
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 (#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 (#9925)