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-comparisoncheck for comparison of NaN valuesAdd support to
ignored-argument-namesin DocstringParameterChecker and addsuseless-param-docanduseless-type-docmessages.Add
empty-commentcheck for empty comments.Add
simplifiable-conditioncheck for extraneous constants in conditionals using and/or.Add
condition-evals-to-constantcheck for conditionals using and/or that evaluate to a constant.Add
consider-using-generatorcheck for the use of list comprehension insideanyorallfunction.
Other Changes¶
Fix false positive for
builtin-not-iteratingwhenzipormapreceives iterableFix 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 2or more.Adds option
check-protected-access-in-special-methodsin the ClassChecker to activate/deactivateprotected-accessmessage emission for single underscore prefixed attribute in special methods.inconsistent-return-statementsmessage is now emitted if one oftry/exceptstatement is not returning explicitly while the other do.Fix false positive message
useless-super-delegationwhen 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-conditionsis 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+
New option
allowed-redefined-builtinsdefines variable names allowed to shadow builtins.Improved protected access checks to allow access inside class methods
