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