Releases: pylint-dev/pylint
pylint-2.7.4: Fix disabled warning not ignored (#4268)
pylint-2.7.3
-
Introduce logic for checking deprecated attributes in DeprecationMixin.
-
Reduce usage of blacklist/whitelist terminology. Notably,
extension-pkg-allow-list
is an
alternative toextension-pkg-whitelist
and the messageblacklisted-name
is now emitted as
disallowed-name
. The previous names are accepted to maintain backward compatibility. -
Move deprecated checker to
DeprecatedMixin
Closes #4086
-
Bump
astroid
version to2.5.2
-
Fix false positive for
method-hidden
when using private attribute and methodCloses #3936
-
use-symbolic-message-instead
now also works on legacy messages likeC0111
(missing-docstring
). -
Remove unwanted print to stdout from
_emit_no_member
-
Introduce a command-line option to specify pyreverse output directory
Closes #4159
-
Fix issue with Enums and
class-attribute-naming-style=snake_case
Closes #4149
-
Add
allowed-redefined-builtins
option for fine tuningredefined-builtin
check.Close #3263
-
Fix issue when executing with
python -m pylint
Closes #4161
-
Exempt
typing.TypedDict
fromtoo-few-public-methods
check.Closes #4180
-
Fix false-positive
no-member
for typed annotations without default value.Closes #3167
-
Add
--class-const-naming-style
for Enum constants and class variables annotated
withtyping.ClassVar
Closes #4181
-
Fix astroid.Inference error for undefined-variables with ``len()```
Closes #4215
-
Fix column index on FIXME warning messages
Closes #4218
-
Improve handling of assignment expressions, better edge case handling
-
Improve check if class is subscriptable PEP585
-
Fix documentation and filename handling of --import-graph
-
Fix false-positive for
unused-import
on class keyword argumentsCloses #3202
-
Fix regression with plugins on PYTHONPATH if latter is cwd
Closes #4252
pylint-2.7.2
pylint-2.7.1
-
Expose
UnittestLinter
in pylint.testutils -
Don't check directories starting with '.' when using register_plugins
Closes #4119
pylint-2.7.0
-
Introduce DeprecationMixin for reusable deprecation checks.
Closes #4049
-
Fix false positive for
builtin-not-iterating
whenmap
receives iterableCloses #4078
-
Python 3.6+ is now required.
-
Fix false positive for
builtin-not-iterating
whenzip
receives iterable -
Add
nan-comparison
check for NaN comparisons -
Bug fix for empty-comment message line number.
Closes #4009
-
Only emit
bad-reversed-sequence
on dictionaries if below py3.8Closes #3940
-
Handle class decorators applied to function.
Closes #3882
-
Add check for empty comments
-
Fix minor documentation issue in contribute.rst
-
Enums are now required to be named in UPPER_CASE by
invalid-name
.Close #3834
-
Add missing checks for deprecated functions.
-
Postponed evaluation of annotations are now recognized by default if python version is above 3.10
Closes #3992
-
Fix column metadata for anomalous backslash lints
-
Drop support for Python 3.5
-
Add support for pep585 with postponed evaluation
Closes #3320
-
Check alternative union syntax - PEP 604
Closes #4065
-
Fix multiple false positives with assignment expressions
-
Fix TypedDict inherit-non-class false-positive Python 3.9+
Closes #1927
-
Fix issue with nested PEP 585 syntax
-
Fix issue with nested PEP 604 syntax
-
Fix a crash in
undefined-variable
caused by chained attributes in metaclassClose #3742
-
Fix false positive for
not-async-context-manager
whencontextlib.asynccontextmanager
is usedClose #3862
-
Fix linter multiprocessing pool shutdown (triggered warnings when runned in parallels with other pytest plugins)
Closes #3779
-
Fix a false-positive emission of
no-self-use
andunused-argument
for methods
of generic structural types (Protocol[T]
)Closes #3885
-
Fix bug that lead to duplicate messages when using
--jobs 2
or more.Close #3584
-
Adds option
check-protected-access-in-special-methods
in the ClassChecker to activate/deactivate
protected-access
message emission for single underscore prefixed attribute in special methods.Close #3120
-
Fix vulnerable regular expressions in
pyreverse
Close #3811
-
inconsistent-return-statements
message is now emitted if one oftry/except
statement
is not returning explicitly while the other do.Closes #3468
-
Fix
useless-super-delegation
false positive when default keyword argument is a dictionnary.Close #3773
-
Fix a crash when a specified config file does not exist
-
Add support to
ignored-argument-names
in DocstringParameterChecker and addsuseless-param-doc
anduseless-type-doc
messages.Close #3800
-
Enforce docparams consistently when docstring is not present
Close #2738
-
Fix
duplicate-code
false positive when lines only contain whitespace and non-alphanumeric characters (e.g. parentheses, bracket, comman, etc.) -
Improve lint message for
singleton-comparison
with bools -
Fix spell-checker crash on indented docstring lines that look like # comments
Close #3786
-
Fix AttributeError in checkers/refactoring.py
-
Improve sphinx directives spelling filter
-
Fix a bug with postponed evaluation when using aliases for annotations.
Close #3798
-
Fix minor documentation issues
-
Improve the performance of the line length check.
-
Removed incorrect deprecation of
inspect.getfullargspec
-
Fix
signature-differs
false positive for functions with variadicsClose #3737
-
Fix a crash in
consider-using-enumerate
when encounteringrange()
without argumentsClose #3735
-
len-as-conditions
is now triggered only for classes that are inheriting directly from list, dict, or set and not implementing the__bool__
function, or from generators like range or list/dict/set comprehension. This should reduce the false positives for other classes, like pandas's DataFrame or numpy's Array.Close #1879
-
Fixes duplicate-errors not working with -j2+
Close #3314
-
generated-members
now matches the qualified name of membersClose #2498
-
Add check for bool function to
len-as-condition
-
Add
simplifiable-condition
check for extraneous constants in conditionals using and/or. -
Add
condition-evals-to-constant
check for conditionals using and/or that evaluate to a constant.Close #3407
-
Changed setup.py to work with distlib
Close #3555
-
New check:
consider-using-generator
This check warns when a comprehension is used inside an
any
orall
function,
since it is unnecessary and should be replaced by a generator instead.
Using a generator would be less code and way faster.Close #3165
-
Add Github Actions to replace Travis and AppVeyor in the future
pylint-2.6.2
-
Astroid version has been set as < 2.5
Close #4093
pylint-2.6.0
-
Fix various scope-related bugs in
undefined-variable
checker -
bad-continuation and bad-whitespace have been removed, black or another formatter can help you with this better than Pylint
Close #246, #289, #638, #747, #1148, #1179, #1943, #2041, #2301, #2304, #2944, #3565
-
The no-space-check option has been removed. It's no longer possible to consider empty line like a
trailing-whitespace
by using clever optionsClose #1368
-
missing-kwoa
is no longer emitted when dealing with overload functionsClose #3655
-
mixed-indentation has been removed, it is no longer useful since TabError is included directly in python3
-
Add
super-with-arguments
check for flagging instances of Python 2 style super calls. -
Add an faq detailing which messages to disable to avoid duplicates w/ other popular linters
-
Fix superfluous-parens false-positive for the walrus operator
Close #3383
-
Fix
fail-under
not accepting floats -
Fix a bug with
ignore-docstrings
ignoring all lines in a module -
Fix
pre-commit
config that could lead to undetected duplicate lines of code -
Fix a crash in parallel mode when the module's filepath is not set
Close #3564
-
Add
raise-missing-from
check for exceptions that should have a cause. -
Support both isort 4 and isort 5. If you have pinned isort 4 in your projet requirements, nothing changes. If you use isort 5, though, note that the
known-standard-library
option is not interpreted the same in isort 4 and isort 5 (see the migration guide in isort documentation for further details). For compatibility's sake for most pylint users, theknown-standard-library
option in pylint now maps toextra-standard-library
in isort 5. If you really want whatknown-standard-library
now means in isort 5, you must disable thewrong-import-order
check in pylint and run isort manually with a proper isort configuration file.Close #3722
pylint-2.5.3
-
Fix a regression where disable comments that have checker names with numbers in them are not parsed correctly
Close #3666
-
property-with-parameters
properly handles abstract propertiesClose #3600
-
continue-in-finally
no longer emitted on Python 3.8 where it's now validClose #3612
-
Fix a regression where messages with dash are not fully parsed
Close #3604
-
In a TOML configuration file, it's now possible to use rich (non-string) types, such as list, integer or boolean instead of strings. For example, one can now define a list of message identifiers to enable like this::
enable = [
"use-symbolic-message-instead",
"useless-suppression",
]Close #3538
-
Fix a regression where the score was not reported with multiple jobs
Close #3547
-
Protect against
AttributeError
when checkingcell-var-from-loop
Close #3646
pylint-2.5.2
-
pylint.Run
acceptsdo_exit
as a deprecated parameterClose #3590
pylint-2.5.1
-
Fix a crash in
method-hidden
lookup for unknown base classesClose #3527
-
Revert pylint.Run's
exit
parameter todo_exit
This has been inadvertently changed several releases ago to
do_exit
.Close #3533
-
no-value-for-parameter
variadic detection has improved for assign statementsClose #3563
-
Allow package files to be properly discovered with multiple jobs
Close #3524
-
Allow linting directories without
__init__.py
which was a regression in 2.5.Close #3528