Open
Conversation
148d1ae to
168e17f
Compare
168e17f to
5ba5750
Compare
5ba5750 to
05ff671
Compare
05ff671 to
0148530
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2.10.2->==2.13.7Release Notes
PyCQA/pylint
v2.13.7Compare Source
============================
Release date: 2022-04-20
Fix a crash caused by using the new config from 2.14.0 in 2.13.x code.
Closes #6408
v2.13.6Compare Source
============================
Release date: 2022-04-20
Fix a crash in the
unsupported-membership-testchecker when assigningmultiple constants to class attributes including
__iter__via unpacking.Closes #6366
Asterisks are no longer required in Sphinx and Google style parameter documentation
for
missing-param-docand are parsed correctly.Closes #5815
Closes #5406
Fixed a false positive for
unused-variablewhen a builtin specified in--additional-builtinsis given a type annotation.Closes #6388
Fixed an
AstroidErrorin 2.13.0 raised by theduplicate-codechecker withignore-importsorignore-signaturesenabled.Closes #6301
v2.13.5Compare Source
============================
Release date: 2022-04-06
Fix false positive regression in 2.13.0 for
used-before-assignmentforhomonyms between variable assignments in try/except blocks and variables in
subscripts in comprehensions.
Closes #6069
Closes #6136
lru-cache-decorating-methodhas been renamed tocache-max-size-noneandwill only be emitted when
maxsizeisNone.Closes #6180
Fix false positive for
unused-importwhen disabling bothused-before-assignmentandundefined-variable.Closes #6089
Narrow the scope of the
unnecessary-ellipsischecker to:nodes.Exprnode & at least one other statement.Fix false positive for
used-before-assignmentfor assignments taking place vianonlocal declarations after an earlier type annotation.
Closes #5394
Fix crash for
redefined-slots-in-subclasswhen the type of the slot is not a const or a string.Closes #6100
Only raise
not-callablewhen all the inferred values of a property are not callable.Closes #5931
Fix a false negative for
subclassed-final-classwhen a set of other messages were disabled.v2.13.4Compare Source
============================
Release date: 2022-03-31
Fix false positive regression in 2.13.0 for
used-before-assignmentforhomonyms between variable assignments in try/except blocks and variables in
a comprehension's filter.
Closes #6035
Include
testing_pylintrcin source and wheel distributions.Closes #6028
Fix crash in
super-init-not-calledchecker when usingctypes.Union.Closes #6027
Fix crash for
unneccessary-ellipsischecker when an ellipsis is used inside of a container or a lambda expression.Closes #6036
Closes #6037
Closes #6048
v2.13.3Compare Source
============================
Release date: 2022-03-29
Fix false positive for
unnecessary-ellipsiswhen using an ellipsis as a default argument.Closes #5973
Fix crash involving unbalanced tuple unpacking.
Closes #5998
Fix false positive for 'nonexistent-operator' when repeated '-' are
separated (e.g. by parens).
Closes #5769
v2.13.2Compare Source
============================
Release date: 2022-03-27
Fix crash when subclassing a
namedtuple.Closes #5982
Fix false positive for
superfluous-parensfor patterns like"return (a or b) in iterable".
Closes #5803
Fix a false negative regression in 2.13.0 where
protected-accesswas notraised on functions.
Fixes #5989
Better error messages in case of crash if pylint can't write the issue template.
Refer to #5987
v2.13.1Compare Source
============================
Release date: 2022-03-26
Fix a regression in 2.13.0 where
used-before-assignmentwas emitted forthe usage of a nonlocal in a try block.
Fixes #5965
Avoid emitting
raising-bad-typewhen there is inference ambiguity onthe variable being raised.
Closes #2793
Loosen TypeVar default name pattern a bit to allow names with multiple uppercase
characters. E.g.
HVACModeTorIPAddressT.Closes #5981
Fixed false positive for
unused-argumentwhen anonlocalname is usedin a nested function that is returned without being called by its parent.
Closes #5187
Fix program crash for
modified_iterating-list/set/dictwhen the list/dict/setbeing iterated through is a function call.
Closes #5969
Don't emit
broken-noreturnandbroken-collections-callableerrorsinside
if TYPE_CHECKINGblocks.v2.13.0Compare Source
============================
Release date: 2022-03-24
Add missing dunder methods to
unexpected-special-method-signaturecheck.No longer emit
no-memberin for loops that referenceselfif the binary operation thatstarted the for loop uses a
selfthat is encapsulated in tuples or lists.Ref PyCQA/astroid#1360
Closes #4826
Output better error message if unsupported file formats are used with
pyreverse.Closes #5950
Fix pyreverse diagrams type hinting for classmethods and staticmethods.
Fix pyreverse diagrams type hinting for methods returning None.
Fix matching
--notesoptions that end in a non-word character.Closes #5840
Updated the position of messages for class and function defintions to no longer cover
the complete definition. Only the
deforclass+ the name of the class/functionare covered.
Closes #5466
using-f-string-in-unsupported-versionandusing-final-decorator-in-unsupported-versionmsgidswere renamed from
W1601andW1602toW2601andW2602. Disabling using these msgids will break.This is done in order to restore consistency with the already existing msgids for
apply-builtinandbasestring-builtinfrom the now deleted python 3K+ checker. There is now a check that we're not usingexisting msgids or symbols from deleted checkers.
Closes #5729
The line numbering for messages related to function arguments is now more accurate. This can
require some message disables to be relocated to updated positions.
Add
--recursiveoption to allow recursive discovery of all modules and packages in subtree. Running pylint with--recursive=yoption will check all discovered.pyfiles and packages found inside subtree of directory providedas parameter to pylint.
Closes #352
Add
modified-iterating-list,modified-iterating-dictandmodified-iterating-set,emitted when items are added to or removed from respectively a list, dictionary or
set being iterated through.
Closes #5348
Fix false-negative for
assignment-from-nonechecker using list.sort() method.closes #5722
New extension
import-private-name: indicate imports of external private packagesand objects (prefixed with
_). It can be loaded usingload-plugins=pylint.extensions.private_import.Closes #5463
Fixed crash from
arguments-differandarguments-renamedwhen methods weredefined outside the top level of a class.
Closes #5648
Removed the deprecated
check_docsextension. You can use thedocparamscheckerto get the checks previously included in
check_docs.Closes #5322
Added a
testutilextra require to the packaging, asgitpythonshould not be a dependencyall the time but is still required to use the primer helper code in
pylint.testutil. You caninstall it with
pip install pylint[testutil].Closes #5486
Reinstated checks from the python3 checker that are still useful for python 3
(
eq-without-hash). This is now in thepylint.extensions.eq_without_hashoptionalextension.
Closes #5025
Fixed an issue where
ungrouped-importscould not be disabled without raisinguseless-suppression.Ref #2366
Added several checkers to deal with unicode security issues
(see
Trojan Sources <https://trojansource.codes/>_ andPEP 672 <https://peps.python.org/pep-0672/>_ for details) that alsoconcern the readability of the code. In detail the following checks were added:
bad-file-encodingchecks that the file is encoded in UTF-8 as suggested byPEP8 <https://peps.python.org/pep-0008/#source-file-encoding>.UTF-16 and UTF-32 are
not supported by Python <https://bugs.python.org/issue1503789>at the moment. If this ever changes
invalid-unicode-codecchecks that they aren't used, to allow for backwardscompatibility.
bidirectional-unicodechecks for bidirectional unicode characters thatcould make code execution different than what the user expects.
invalid-character-backspace,invalid-character-carriage-return,invalid-character-sub,invalid-character-esc,invalid-character-zero-width-spaceandinvalid-character-nulto check for possibly harmful unescaped characters.
Closes #5281
Use the
tomlipackage instead oftomlto parse.tomlfiles.Closes #5885
selfin a subclass oftyping.NamedTuple.Closes #5312
unpacking-non-sequencewhen value is an empty list.Closes #5707
Better warning messages for useless else or elif when a function returns early.
Closes #5614
Fixed false positive
consider-using-dict-comprehensionwhen creating a dictusing a list of tuples where key AND value vary depending on the same condition.
Closes #5588
Fixed false positive for
global-variable-undefinedwhenglobalis used with a class nameCloses #3088
Fixed false positive for
unused-variablewhen anonlocalname is assigned as part of a multi-name assignment.Closes #3781
Fixed a crash in
unspecified-encodingchecker when providingNoneto the
modeargument of anopen()call.Closes #5731
Fixed a crash involving a
NewTypenamed with an f-string.Closes #5770
Ref PyCQA/astroid#1400
Improved
bad-open-modemessage when providingNoneto themodeargument of an
open()call.Closes #5733
Added
lru-cache-decorating-methodchecker with checks for the use offunctools.lru_cacheon class methods. This is unrecommended as it creates memory leaks by never letting the instance
getting garbage collected.
Closes #5670
Fixed crash with recursion error for inference of class attributes that referenced
the class itself.
Closes #5408
Ref PyCQA/astroid#1392
Fixed false positive for
unused-argumentwhen a method overridden in a subclassdoes nothing with the value of a keyword-only argument.
Closes #5771
Ref PyCQA/astroid#1382
The issue template for crashes is now created for crashes which were previously not covered
by this mechanism.
Closes #5668
Rewrote checker for
non-ascii-name.It now ensures all Python names are ASCII and also properly
checks the names of imports (
non-ascii-module-import) aswell as file names (
non-ascii-file-name) and emits their respective new warnings.Non ASCII characters could be homoglyphs (look alike characters) and hard to
enter on a non specialized keyboard.
See
Confusable Characters in PEP 672 <https://peps.python.org/pep-0672/#confusing-features>_When run in parallel mode
pylintnow pickles the data passed to subprocesses withthe
dillpackage. Thedillpackage has therefore been added as a dependency.An astroid issue where symlinks were not being taken into account
was fixed
Closes #1470
Closes #3499
Closes #4302
Closes #4798
Closes #5081
Fix a crash in
unused-private-memberchecker when analyzing code usingtype(self)in bound methods.Closes #5569
Optimize parsing of long lines when
missing-final-newlineis enabled.Closes #5724
Fix false positives for
used-before-assignmentfrom using namedexpressions in a ternary operator test and using that expression as
a call argument.
Closes #5177, #5212
Fix false positive for
undefined-variablewhennamedtupleclassattributes are used as return annotations.
Closes #5568
Fix false negative for
undefined-variableand related variable messageswhen the same undefined variable is used as a type annotation and is
accessed multiple times, or is used as a default argument to a function.
Closes #5399
Pyreverse - add output in mermaidjs format
Emit
used-before-assignmentinstead ofundefined-variablewhen attemptingto access unused type annotations.
Closes #5713
Added confidence level
CONTROL_FLOWfor warnings relying on assumptionsabout control flow.
used-before-assignmentnow considers that assignments in a try blockmay not have occurred when the except or finally blocks are executed.
Closes #85, #2615
Fixed false negative for
used-before-assignmentwhen a conditionalor context manager intervened before the try statement that suggested
it might fail.
Closes #4045
Fixed false negative for
used-before-assignmentin finally blocksif an except handler did not define the assignment that might have failed
in the try block.
Fixed extremely long processing of long lines with comma's.
Closes #5483
Fixed crash on properties and inherited class methods when comparing them for
equality against an empty dict.
Closes #5646
Fixed a false positive for
assigning-non-slotwhen the slotted classdefined
__setattr__.Closes #3793
Fixed a false positive for
invalid-class-objectwhen the objectbeing assigned to the
__class__attribute is uninferable.Fixed false positive for
used-before-assignmentwith self-referential typeannotation in conditional statements within class methods.
Closes #5499
Add checker
redefined-slots-in-subclass: Emitted when a slot is redefined in a subclass.Closes #5617
Fixed false positive for
global-variable-not-assignedwhen thedelstatement is usedCloses #5333
By default, pylint does no longer take files starting with
.#into account. Those areconsidered
emacs file locks. Seehttps://www.gnu.org/software/emacs/manual/html_node/elisp/File-Locks.html.
This behavior can be reverted by redefining the
ignore-patternsoption.Closes #367
Fixed a false positive for
used-before-assignmentwhen a named expressionappears as the first value in a container.
Closes #5112
used-before-assignmentnow assumes that assignments in except blocksmay not have occurred and warns accordingly.
Closes #4761
When evaluating statements after an except block,
used-before-assignmentassumes that assignments in the except blocks took place if the
corresponding try block contained a return statement.
Closes #5500
Fixed a false negative for
used-before-assignmentwhen some but not allexcept handlers defined a name relied upon after an except block when the
corresponding try block contained a return statement.
Closes #5524
When evaluating statements in the
elseclause of a loop,used-before-assignmentassumes that assignments in the except blocks took place if the
except handlers constituted the only ways for the loop to finish without
breaking early.
Closes #5683
used-before-assignmentnow checks names in try blocks.Fixed false positive with
used-before-assignmentfor assignment expressionsin lambda statements.
Closes #5360, #3877
Fixed a false positive (affecting unreleased development) for
used-before-assignmentinvolving homonyms between filtered comprehensionsand assignments in except blocks.
Closes #5586
Fixed crash with slots assignments and annotated assignments.
Closes #5479
Fixed crash on list comprehensions that used
typeas inner variable name.Closes #5461
Fixed crash in
use-maxsplit-argchecker when providing thesepargumentto
str.split()by keyword.Closes #5737
Fix false positive for
unused-variablefor a comprehension variable matchingan outer scope type annotation.
Closes #5326
Fix false negative for
undefined-variablefor a variable used multiple timesin a comprehension matching an unused outer scope type annotation.
Closes #5654
Some files in
pylint.testutilswere deprecated. In the future imports should be done from thepylint.testutils.functionalnamespace directly.Fixed false positives for
no-value-for-parameterwith variadicpositional arguments.
Closes #5416
safe_inferno longer makes an inference when given two functiondefinitions with differing numbers of arguments.
Closes #3675
Fix
comparison-with-callablefalse positive for callables that raise, suchas typing constants.
Closes #5557
Fixed a crash on
__init__nodes when the attribute was previously uninferable due to a cachelimit size. This limit can be hit when the inheritance pattern of a class (and therefore of the
__init__attribute) is very large.Closes #5679
Fix false positive for
used-before-assignmentfrom a class definitionnested under a function subclassing a class defined outside the function.
Closes #4590
Fix
unnecessary_dict_index_lookupfalse positive when deleting a dictionary's entry.Closes #4716
Fix false positive for
used-before-assignmentwhen an except handlershares a name with a test in a filtered comprehension.
Closes #5817
Fix crash in
unnecessary-dict-index-lookupchecker if the output ofitems()is assigned to a 1-tuple.Closes #5504
When invoking
pylint,epylint,symilarorpyreverseby importing them in a python fileyou can now pass an
argvkeyword besides patchingsys.argv.Closes #5320
The
PyLinterclass will now be initialized with aTextReporteras its reporter if none is provided.
Fix
super-init-not-calledwhen parent orselfis aProtocolCloses #4790
Fix false positive
not-callablewith attributes that aliasNamedTuplePartially closes #1730
Emit
redefined-outer-namewhen a nested except handler shadows an outer one.Closes #4434
Closes #5370
Fix false positive
super-init-not-calledfor classes that inherit theirinitfroma parent.
Closes #4941
encodingcan now be supplied as a positional argument to calls that openfiles without triggering
unspecified-encoding.Closes #5638
Fatal errors now emit a score of 0.0 regardless of whether the linted module
contained any statements
Closes #5451
fatalwas added to the variables permitted in score evaluation expressions.The default score evaluation now uses a floor of 0.
Closes #2399
Fix false negative for
consider-iterating-dictionaryduring membership checks encapsulated in iterablesor
not inchecksCloses #5323
Fixed crash on uninferable decorators on Python 3.6 and 3.7
Add checker
unnecessary-ellipsis: Emitted when the ellipsis constant is used unnecessarily.Closes #5460
Disable checker
bad-docstring-quotesfor Python <= 3.7, because in these versions the linenumbers for decorated functions and classes are not reliable which interferes with the checker.
Closes #3077
Fixed incorrect classification of Numpy-style docstring as Google-style docstring for
docstrings with property setter documentation.
Docstring classification is now based on the highest amount of matched sections instead
of the order in which the docstring styles were tried.
Fixed detection of
arguments-differwhen superclass staticmethods lacked a
@staticmethoddecorator.Closes #5371
TypingCheckerAdded new check
broken-noreturnto detect broken uses oftyping.NoReturnif
py-versionis set to Python3.7.1or below.https://bugs.python.org/issue34921
Added new check
broken-collections-callableto detect broken uses ofcollections.abc.Callableif
py-versionis set to Python3.9.1or below.https://bugs.python.org/issue42965
The
testutilsfor unittests now acceptend_linenoandend_column. Testswithout these will trigger a
DeprecationWarning.arguments-differwill no longer complain about method redefinitions with extra parametersthat have default values.
Closes #1556, #5338
Fixed false positive
unexpected-keyword-argfor decorators.Closes #258
Importing the deprecated stdlib module
xml.etree.cElementTreenow emitsdeprecated_module.Closes #5862
Disables for
deprecated-moduleand similar warnings for stdlib features deprecatedin newer versions of Python no longer raise
useless-suppressionwhen linting witholder Python interpreters where those features are not yet deprecated.
Importing the deprecated stdlib module
distutilsnow emitsdeprecated_moduleon Python 3.10+.missing-raises-docwill now check the class hierarchy of the raised exceptions.. code-block:: python
def my_function()
"""My function.
Closes #4955
Allow disabling
duplicate-codewith a disable comment when running throughpylint.
Closes #214
Improve
invalid-namecheck forTypeVarnames.The accepted pattern can be customized with
--typevar-rgx.Closes #3401
Added new checker
typevar-name-missing-variance. Emitted when a covariantor contravariant
TypeVardoes not end with_coor_contrarespectively orwhen a
TypeVaris not either but has a suffix.Allow usage of mccabe 0.7.x release
Closes #5878
Fix
unused-private-memberfalse positive when accessing private methods throughproperty.Closes #4756
v2.12.2Compare Source
============================
Release date: 2021-11-25
Fixed a false positive for
unused-importwhere everythingwas not analyzed properly inside typing guards.
Fixed a false-positive regression for
used-before-assignmentfortyped variables in the body of class methods that reference the same class
Closes #5342
Specified that the
ignore-pathsoption considers "" to represent awindows directory delimiter instead of a regular expression escape
character.
Fixed a crash with the
ignore-pathsoption when invoking the optionvia the command line.
Closes #5437
Fixed handling of Sphinx-style parameter docstrings with asterisks. These
should be escaped with by prepending a "".
Closes #5406
Add
endLineandendColumnkeys to output ofJSONReporter.Closes #5380
Fixed handling of Google-style parameter specifications where descriptions
are on the line following the parameter name. These were generating
false positives for
missing-param-doc.Closes #5452
Fix false negative for
consider-iterating-dictionaryduring membership checks encapsulated in iterablesor
not inchecksCloses #5323
unused-importnow check all ancestors for typing guardsCloses #5316
v2.12.1Compare Source
============================
Release date: 2021-11-25
Require Python
3.6.2to run pylint.Closes #5065
v2.12.0Compare Source
============================
Release date: 2021-11-24
Upgrade astroid to 2.9.0
Closes #4982
Add ability to add
end_lineandend_columnto the--msg-templateoption.With the standard
TextReporterthis will add the line and column number of theend of a node to the output of Pylint. If these numbers are unknown, they are represented
by an empty string.
Introduced primer tests and a configuration tests framework. The helper classes available in
pylint/testutil/are still unstable and might be modified in the near future.Closes #4412 #5287
Fix
install graphizmessage which isn't needed for puml output format.MessageTestof the unittesttestutilnow requires theconfidenceattributeto match the expected value. If none is provided it is set to
UNDEFINED.add_messageof the unittesttestutilnow actually handles thecol_offsetparameterand allows it to be checked against actual output in a test.
Fix a crash in the
check_elifextensions where an undetected if in a comprehensionwith an if statement within a f-string resulted in an out of range error. The checker no
longer relies on counting if statements anymore and uses known if statements locations instead.
It should not crash on badly parsed if statements anymore.
Fix
simplify-boolean-expressionwhen condition can be inferred as False.Closes #5200
Fix exception when pyreverse parses
property functionof a class.The functional
testutilsnow acceptend_linenoandend_column. Expectedoutput files without these will trigger a
DeprecationWarning. Expected output filescan be easily updated with the
python tests/test_functional.py --update-functional-outputcommand.The functional
testutilsnow correctly check the distinction betweenHIGHandUNDEFINEDconfidence. Expected output files without definedconfidencelevels will nowtrigger a
DeprecationWarning. Expected output files can be easily updated with thepython tests/test_functional.py --update-functional-outputcommand.The functional test runner now supports the option
min_pyver_end_positionto control on which pythonversions the
end_linenoandend_columnattributes should be checked. The default value is 3.8.Fix
accept-no-yields-docandaccept-no-return-docnot allowing missingyieldorreturndocumentation when a docstring is partially correctCloses #5223
Add an optional extension
consider-using-any-or-all: Emitted when aforloop onlyproduces a boolean and could be replaced by
anyorallusing a generator. Also suggestsa suitable any or all statement.
Closes #5008
Properly identify parameters with no documentation and add new message called
missing-any-param-docCloses #3799
Add checkers
overridden-final-method&subclassed-final-classCloses #3197
Fixed
protected-accessfor accessing of attributes and methods of inner classesCloses #3066
Added support for
ModuleNotFoundError(import-errorandno-name-in-module).ModuleNotFoundErrorinherits fromImportErrorand was added in Python3.6undefined-variablenow correctly flags variables which only receive a type annotationsand never get assigned a value
Closes #5140
undefined-variablenow correctly considers the line numbering and order of classesused in metaclass declarations
Closes #4031
used-before-assignmentnow correctly considers references to classes as type annotationor default values in first-level methods
Closes #3771
undefined-variableandunused-variablenow correctly trigger for assignment expressionsin functions defaults
Fixes part of #3688
undefined-variablenow correctly triggers for assignment expressions in if ... else statementsThis includes a basic form of control flow inference for if ... else statements using
constant boolean values
Closes #3688
Added the
--enable-all-extensionscommand line option. It will load all available extensionswhich can be listed by running
--list-extensionsFix bug with importing namespace packages with relative imports
Closes #2967 and #5131
Improve and flatten
unused-wildcard-importmessageCloses #3859
In length checker,
len-as-conditionhas been renamed asuse-implicit-booleaness-not-lenin order to be consistent withuse-implicit-booleaness-not-comparison.Created new
UnsupportedVersionCheckerchecker class that includes checks for featuresnot supported by all versions indicated by a
py-version.using-f-string-in-unsupported-versionchecker. Issued whenpy-versionis set to a version that does not support f-strings (< 3.6)
Fix
useless-super-delegationfalse positive when default keyword argument is a variable.Properly emit
duplicate-keywhen Enum members are duplicate dictionary keysCloses #5150
Use
py-versionsetting for alternative union syntax check (PEP 604),instead of the Python interpreter version.
Subclasses of
dictare regarded as reversible by thebad-reversed-sequencechecker(Python 3.8 onwards).
Closes #4981
Support configuring mixin class pattern via
mixin-class-rgxAdded new checker
use-implicit-booleaness-not-comparison: Emitted whencollection literal comparison is being used to check for emptiness.
Closes #4774
mising-param-docnow correctly parses asterisks for variable length andkeyword parameters
Closes #3733
mising-param-docnow correctly handles Numpy parameter documentation withoutexplicit typing
Closes #5222
pylintno longer crashes when checking assignment expressions within if-statementsCloses #5178
Update ``literal-comparison``` checker to ignore tuple literals
Closes #3031
Normalize the input to the
ignore-pathsoption to allow both Posix andWindows paths
Closes #5194
Fix double emitting of
not-callableon inferablepropertiesCloses #4426
self-cls-assignmentnow also considers tuple assignmentFix
missing-function-docstringnot being able to check__init__and othermagic methods even if the
no-docstring-rgxsetting was set to do soAdded
using-final-decorator-in-unsupported-versionchecker. Issued whenpy-versionis set to a version that does not support
typing.final(< 3.8)Added configuration option
exclude-too-few-public-methodsto allow excludingclasses from the
min-public-methodschecker.Closes #3370
The
--jobsparameter now fallbacks to 1 if the host operating system does nothave functioning shared semaphore implementation.
Closes #5216
Fix crash for
unused-private-memberwhen checking private members on__class__Closes #5261
Crashes when a list is encountered in a toml configuration do not happen anymore.
Closes #4580
Moved
misplaced-comparison-constantto its own extensioncomparison_placement.This checker was opinionated and now no longer a default. It can be reactived by adding
pylint.extensions.comparison_placementtoload-pluginsin your config.Closes #1064
A new
bad-configuration-sectionchecker was added that will emit for misplaced optionin pylint's top level namespace for toml configuration. Top-level dictionaries or option defined
in the wrong section will still silently not be taken into account, which is tracked in a
follow-up issue.
Follow-up in #5259
Fix crash for
protected-accesson (outer) class traversalAdded new checker
useless-with-lockto find incorrect usage of with statement and threading module locks.Emitted when
with threading.Lock():is used instead ofwith lock_instance:.Closes #5208
Make yn validator case insensitive, to allow for
TrueandFalsein config files.Fix crash on
open()calls when themodeargument is not a simple string.Partially closes #5321
Inheriting from a class that implements
__class_getitem__no longer raisesinherit-non-class.Pyreverse - Add the project root directory to sys.path
Closes #2479
Don't emit
consider-using-f-stringifpy-versionis set to Python <3.6.f-stringswere added in Python3.6Closes #5019
Fix regression for
unspecified-encodingwithpathlib.Path.read_text()Closes #5029
Don't emit
consider-using-f-stringif the variables to be interpolated include a backslashFixed false positive for
cell-var-from-loopwhen variable is used as the defaultvalue for a keyword-only parameter.
Closes #5012
Fix false-positive
undefined-variablewithLambda,IfExp, andassignment expression.
Fix false-positive
useless-suppressionforwrong-import-orderCloses #2366
Fixed
tomldependency issueCloses #5066
Fix false-positive
useless-suppressionforline-too-longCloses #4212
Fixed
invalid-namenot checking parameters of overwritten baseobjectmethodsCloses #3614
Fixed crash in
consider-using-f-stringifformatis not calledCloses #5058
Fix crash with
AssignAttrinif TYPE_CHECKINGblocks.Closes #5111
Improve node information for
invalid-nameon function argument.Prevent return type checkers being called on functions with ellipses as body
Closes #4736
Add
is_sys_guardandis_typing_guardhelper functions from astroidto
pylint.checkers.utils.Fix regression on ClassDef inference
Closes #5030
Closes #5036
Fix regression on Compare node inference
Closes #5048
Fix false-positive
isinstance-second-argument-not-valid-typewithtyping.Callable.Closes #3507
Closes #5087
It is now recommended to do
pylintdevelopment onPython3.8 or higher. Thisallows using the latest
astparser.All standard jobs in the
pylintCI now run onPython3.8 by default. We stillsupport python 3.6 and 3.7 and run tests for those interpreters.
TypingCheckerdeprecated-typing-aliasandconsider-using-aliaswith
typing.Type+typing.Callable.v2.11.1Compare Source
============================
Release date: 2021-09-16
unspecified-encodingnow checks the encoding ofpathlib.Path()correctlyCloses #5017
v2.11.0Compare Source
============================
Release date: 2021-09-16
The python3 porting mode checker and it's
py3koption were removed. You can still find it in older pylintversions.
raising-bad-typeis now properly emitted when raising a stringAdded new extension
SetMembershipCheckerwithuse-set-for-membershipcheck:Emitted when using an in-place defined
listortupleto do a membership test.setsare better optimized for that.Closes #4776
Added
py-versionconfig key (if[MASTER]section). Used for version dependent checks.Will default to whatever Python version pylint is executed with.
CodeStyleCheckerAdded
consider-using-assignment-expr: Emitted when an assignment is directly followed by an if statementand 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-withif a context manager is assigned to avariable in different paths of control flow (e. g. if-else clause).
Closes #4751
https is now preferred in the documentation and http://pylint.pycqa.org correctly redirect to https://pylint.pycqa.org
Closes #3802
Fix false positive for
function-redefinedfor simple type annotationsCloses #4936
Fix false positive for
protected-accessif a protected member is used in type hints of function definitionsFix false positive
dict-iter-missing-itemsfor dictionaries only using tuples as keysCloses #3282
The
unspecified-encodingchecker now also checks calls topathlib.Path().read_text()and
pathlib.Path().write_text()Closes #4945
Fix false positive
superfluous-parensfor tuples created with inner tuplesCloses #4907
Fix false positive
unused-private-memberfor accessing attributes in a class usingclsCloses #4849
Fix false positive
unused-private-memberfor private staticmethods accessed in classmethods.Closes #4849
Extended
consider-using-incheck to work for attribute access.Setting
min-similarity-linesto 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-assignedchecker now catches global variables that are never reassigned in alocal scope and catches (reassigned) functions
Closes #1375
Closes #330
Fix false positives for invalid-all-format that are lists or tuples at runtime
Closes #4711
Fix
no-self-useanddocparams extensionfor async functions and methods.Add documentation for
pyreverseandsymilarCloses #4616
Non symbolic messages with the wrong capitalisation now correctly trigger
use-symbolic-message-insteadCloses #5000
The
consider-iterating-dictionarychecker now also considers membership checksCloses #4069
The
invalid-namemessage is now more detailed when using multiple naming style regexes.Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.