- Release
2.15
- Date
TBA
In pylint 2.15.0, we added a new check missing-timeout
to warn of default timeout values that could cause a program to be hanging indefinitely.
We improved pylint
's handling of namespace packages. More packages should be linted without resorting to using the --recursive=y
option.
Release date: 2022-08-25
Added new checker
missing-timeout
to warn of default timeout values that could cause a program to be hanging indefinitely.Refs #6780 (#6780)
Don't report
super-init-not-called
for abstract__init__
methods.Closes #3975 (#3975)
Don't report
unsupported-binary-operation
on Python <= 3.9 when using the|
operator with types, if one has a metaclass that overloads__or__
or__ror__
as appropriate.Closes #4951 (#4951)
Don't report
no-value-for-parameter
for dataclasses fields annotated withKW_ONLY
.Closes #5767 (#5767)
Fixed inference of
Enums
when they are imported under an alias.Closes #5776 (#5776)
Prevent false positives when accessing
PurePath.parents
by index (not slice) on Python 3.10+.Closes #5832 (#5832)
unnecessary-list-index-lookup
is now more conservative to avoid potential false positives.Closes #6896 (#6896)
Fix double emitting
trailing-whitespace
for multi-line docstrings.Closes #6936 (#6936)
import-error
now correctly checks forcontextlib.suppress
guards on import statements.Closes #7270 (#7270)
Fix false positive for no-self-argument/no-method-argument when a staticmethod is applied to a function but uses a different name.
Closes #7300 (#7300)
Fix undefined-loop-variable with break and continue statements in else blocks.
Refs #7311 (#7311)
Emit
used-before-assignment
when relying on a name that is reimported later in a function.Closes #4624 (#4624)
Emit
used-before-assignment
for self-referencing named expressions (:=
) lacking prior assignments.Closes #5653 (#5653)
Emit
used-before-assignment
for self-referencing assignments under if conditions.Closes #6643 (#6643)
Emit
modified-iterating-list
and analogous messages for dicts and sets when iterating literals, or when using thedel
keyword.Closes #6648 (#6648)
Emit
used-before-assignment
when calling nested functions before assignment.Closes #6812 (#6812)
Emit
nonlocal-without-binding
when a nonlocal name has been assigned at a later point in the same scope.Closes #6883 (#6883)
Emit
using-constant-test
when testing the truth value of a variable or call result holding a generator.Closes #6909 (#6909)
Rename
unhashable-dict-key
tounhashable-member
and emit when creating sets and dicts, not just when accessing dicts.Closes #7034, Closes #7055 (#7034)
Fix a failure to lint packages with
__init__.py
contained in directories lacking__init__.py
.Closes #1667 (#1667)
Fixed a syntax-error crash that was not handled properly when the declared encoding of a file was
utf-9
.Closes #3860 (#3860)
Fix a crash in the
not-callable
check when there is ambiguity whether an instance is being incorrectly provided to__new__()
.Closes #7109 (#7109)
Fix crash when regex option raises a re.error exception.
Closes #7202 (#7202)
Fix undefined-loop-variable from walrus in comprehension test.
Closes #7222 (#7222)
Check for <cwd> before removing first item from sys.path in modify_sys_path.
Closes #7231 (#7231)
Fix sys.path pollution in parallel mode.
Closes #7246 (#7246)
Prevent useless-parent-delegation for delegating to a builtin written in C (e.g. Exception.__init__) with non-self arguments.
Closes #7319 (#7319)
bad-exception-context
has been renamed tobad-exception-cause
as it is about the cause and not the context.Closes #3694 (#3694)
The message for
literal-comparison
is now more explicit about the problem and the solution.Closes #5237 (#5237)
useless-super-delegation
has been renamed touseless-parent-delegation
in order to be more generic.Closes #6953 (#6953)
Pylint now uses
towncrier
for changelog generation.Refs #6974 (#6974)
Update
astroid
to 2.12.Refs #7153 (#7153)
Fix crash when a type-annotated __slots__ with no value is declared.
Closes #7280 (#7280)
Fixed an issue where it was impossible to update functional tests output when the existing output was impossible to parse. Instead of raising an error we raise a warning message and let the functional test fail with a default value.
Refs #6891 (#6891)
pylint.testutils.primer
is now a private API.Refs #6905 (#6905)
We changed the way we handle the changelog internally by using towncrier. If you're a contributor you won't have to fix merge conflicts in the changelog anymore.
Closes #6974 (#6974)
Pylint is now using Scorecards to implement security recommendations from the OpenSSF. This is done in order to secure our supply chains using a combination of automated tooling and best practices, most of which were already implemented before.
Refs #7267 (#7267)