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 valuesAdd support to
ignored-argument-names
in DocstringParameterChecker and addsuseless-param-doc
anduseless-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 insideany
orall
function.
Other Changes¶
Fix false positive for
builtin-not-iterating
whenzip
ormap
receives iterableFix linter multiprocessing pool shutdown which triggered warnings when ran 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/deactivateprotected-access
message emission for single underscore prefixed attribute in special methods.inconsistent-return-statements
message is now emitted if one oftry/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+
New option
allowed-redefined-builtins
defines variable names allowed to shadow builtins.Improved protected access checks to allow access inside class methods