-
The python3 porting mode checker and it's
py3k
option were removed. You can still find it in older pylint
versions. -
raising-bad-type
is now properly emitted when raising a string -
Added new extension
SetMembershipChecker
withuse-set-for-membership
check:
Emitted when using an in-place definedlist
ortuple
to do a membership test.sets
are better optimized for that.Closes #4776
-
Added
py-version
config key (if[MASTER]
section). Used for version dependant checks.
Will default to whatever Python version pylint is executed with. -
CodeStyleChecker
-
Added
consider-using-assignment-expr
: Emitted when an assignment is directly followed by an if statement
and both can be combined by using an assignment expression:=
. Requires Python 3.8Closes #4862
-
-
Added
consider-using-f-string
: Emitted when .format() or '%' is being used to format a string.Closes #3592
-
Fix false positive for
consider-using-with
if a context manager is assigned to a
variable in different paths of control flow (e. g. if-else clause).Closes #4751
-
https is now prefered in the documentation and http://pylint.pycqa.org correctly redirect to https://pylint.pycqa.org
Closes #3802
-
Fix false positive for
function-redefined
for simple type annotationsCloses #4936
-
Fix false positive for
protected-access
if a protected member is used in type hints of function definitions -
Fix false positive
dict-iter-missing-items
for dictionaries only using tuples as keysCloses #3282
-
The
unspecified-encoding
checker now also checks calls topathlib.Path().read_text()
andpathlib.Path().write_text()
Closes #4945
-
Fix false positive
superfluous-parens
for tuples created with inner tuplesCloses #4907
-
Fix false positive
unused-private-member
for accessing attributes in a class usingcls
Closes #4849
-
Fix false positive
unused-private-member
for private staticmethods accessed in classmethods.Closes #4849
-
Extended
consider-using-in
check to work for attribute access. -
Setting
min-similarity-lines
to 0 now makes the similarty checker stop checking for duplicate codeCloses #4901
-
Fix a bug where pylint complained if the cache's parent directory does not exist
Closes #4900
-
The
global-variable-not-assigned
checker now catches global variables that are never reassigned in a
local scope and catches (reassigned) functions -
Fix false positives for invalid-all-format that are lists or tuples at runtime
Closes #4711
-
Fix
no-self-use
anddocparams extension
for async functions and methods. -
Add documentation for
pyreverse
andsymilar
Closes #4616
-
Non symbolic messages with the wrong capitalisation now correctly trigger
use-symbolic-message-instead
Closes #5000
-
The
consider-iterating-dictionary
checker now also considers membership checksCloses #4069
-
The
invalid-name
message is now more detailed when using multiple naming style regexes.