What's New in Pylint 2.7
Release: | 2.7 |
Date: | 2021-02-21 |
Summary -- Release highlights
- Python 3.6+ is now required.
- No more duplicate messages when using multiple jobs.
- Handling of the new typing provided by mypy 0.8
- Reduced the number of false positives in general
- Reduced the occurrence of genuinely large recursion that went above system limit (See #3836, for a fix for pandas)
New checkers
- Add nan-comparison check for comparison of NaN values
- Add support to
ignored-argument-names
in DocstringParameterChecker and
adds useless-param-doc and useless-type-doc messages.
- Add empty-comment check for empty comments.
- 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.
- Add consider-using-generator check for the use of list comprehension inside
any
or all
function.
Other Changes
- Fix false positive for
builtin-not-iterating
when zip
or map
receives iterable
- Fix linter multiprocessing pool shutdown which triggered warnings when runned in parallels with other pytest plugins.
- Enums are now required to be named in UPPER_CASE by
invalid-name
.
- Fix bug that lead to duplicate messages when using
--jobs 2
or more.
- 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.
inconsistent-return-statements
message is now emitted if one of try/except
statement
is not returning explicitly while the other do.
- Fix false positive message
useless-super-delegation
when default keyword argument is a dictionary.
- Fix vulnerable regular expressions in
pyreverse
. The ambiguities of vulnerable regular expressions are removed, making the repaired regular expressions safer and faster matching.
- 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 positive for other classes, like pandas's DataFrame or numpy's Array.
- Fixes duplicate code detection for --jobs=2+