Update dependency pylint to v2.17.7 #48
Merged
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.12.2
->2.17.7
Release Notes
pylint-dev/pylint (pylint)
v2.17.7
Compare Source
2.17.7 is the last release before we only support pylint 3.0.0 or superior and python 3.8 or superior.
False Positives Fixed
Fix a regression in pylint 2.17.6 / astroid 2.15.7 causing various
messages for code involving
TypeVar
.Closes #9069
Other Bug Fixes
Fix crash in refactoring checker when unary operand used with variable in for
loop.
Closes #9074
v2.17.6
Compare Source
Other Bug Fixes
When parsing comma-separated lists of regular expressions in the config,
ignore commas that are inside braces since those indicate quantifiers, not
delineation between expressions.
Closes #7229
sys.argv
is now always correctly considered as impossible to infer(instead of using the actual values given to pylint).
Closes #9047
Don't show class fields more than once in Pyreverse diagrams.
Closes #8189
Don't show arrows more than once in Pyreverse diagrams.
Closes #8522
Don't show duplicate type annotations in Pyreverse diagrams.
Closes #8888
Don't add
Optional
to|
annotations withNone
in Pyreverse diagrams.Closes #9014
v2.17.5
Compare Source
What's new in Pylint 2.17.5?
Release date: 2023-07-26
False Positives Fixed
Fix a false positive for
unused-variable
when there is an import in aif TYPE_CHECKING:
block andallow-global-unused-variables
is set tono
in the configuration.Closes #8696
Fix false positives generated when supplying arguments as
**kwargs
to IOcalls like open().
Closes #8719
Fix a false positive where pylint was ignoring method calls annotated as
NoReturn
during theinconsistent-return-statements
check.Closes #8747
Exempt parents with only type annotations from the
invalid-enum-extension
message.
Closes #8830
Other Bug Fixes
Fixed crash when a call to
super()
was placed after an operator (e.g.not
).Closes #8554
Fix crash for
modified-while-iterating
checker when deletingmembers of a dict returned from a call.
Closes #8598
Fix crash in
invalid-metaclass
check when a metaclass had duplicatebases.
Closes #8698
Avoid
consider-using-f-string
on modulos with brackets in template.Closes #8720.
Fix a crash when
__all__
exists but cannot be inferred.Closes #8740
Fix crash when a variable is assigned to a class attribute of identical name.
Closes #8754
Fixed a crash when calling
copy.copy()
without arguments.Closes #8774
Other Changes
Fix a crash when a
nonlocal
is defined at module-level.Closes #8735
v2.17.4
Compare Source
False Positives Fixed
Fix a false positive for
bad-dunder-name
when there is a user-defined__index__
method.Closes #8613
Other Bug Fixes
pyreverse
: added escaping of vertical bar character in annotation labelsproduced by DOT printer to ensure it is not treated as field separator of
record-based nodes.
Closes #8603
Fixed a crash when generating a configuration file:
tomlkit.exceptions.TOMLKitError: Can't add a table to a dotted key
caused by tomlkit
v0.11.8
.Closes #8632
v2.17.3
Compare Source
What's new in Pylint 2.17.3?
Release date: 2023-04-24
False Positives Fixed
Fix
unused-argument
false positive when__new__
does not use all thearguments of
__init__
.Closes #3670
Fix
unused-import
false positive for usage ofsix.with_metaclass
.Closes #7506
logging-not-lazy
is not longer emitted for explicitly concatenated stringarguments.
Closes #8410
Fix false positive for isinstance-second-argument-not-valid-type when union
types contains None.
Closes #8424
Fixed
unused-import
so that it observes thedummy-variables-rgx
option.Closes #8500
Union
typed variables without assignment are no longer treated asTypeAlias
.Closes #8540
Fix false positive for
positional-only-arguments-expected
when a functioncontains both a positional-only parameter that has a default value, and
**kwargs
.Closes #8555
Fix false positive for
keyword-arg-before-vararg
when a positional-onlyparameter with a default value precedes
*args
.Closes #8570
Other Bug Fixes
Improve output of
consider-using-generator
message formin()` calls with
default`` keyword.Closes #8563
v2.17.2
Compare Source
False Positives Fixed
invalid-name
now allows for integers intypealias
names:Good2Name
,GoodName2
._1BadName
.Closes #8485
No longer consider
Union
as type annotation as type alias for namingchecks.
Closes #8487
unnecessary-lambda
no longer warns on lambdas which use its parameters intheir body (other than the final arguments), e.g.
lambda foo: (bar if foo else baz)(foo)
.Closes #8496
Other Bug Fixes
Fix a crash in pyreverse when "/" characters are used in the output filename
e.g pyreverse -o png -p name/ path/to/project.
Closes #8504
v2.17.1
Compare Source
False Positives Fixed
Adds
asyncSetUp
to the defaultdefining-attr-methods
list to silenceattribute-defined-outside-init
warning when usingunittest.IsolatedAsyncioTestCase
.Refs #8403
Other Bug Fixes
--clear-cache-post-run
now also clears LRU caches for pylint utilitiesholding references to AST nodes.
Closes #8361
Fix a crash when
TYPE_CHECKING
is used without importing it.Closes #8434
Fix a regression of
preferred-modules
where a partial match was usedinstead of the required full match.
Closes #8453
Internal Changes
The following utilities are deprecated in favor of the more robust
in_type_checking_block
and will be removed in pylint 3.0:
is_node_in_guarded_import_block
is_node_in_typing_guarded_import_block
is_typing_guard
is_sys_guard
is still available, which was part ofis_node_in_guarded_import_block
.Refs #8433
v2.17.0
Compare Source
2.17 is a small release that is the first to support python 3.11 officially
with the addition of TryStar nodes.
There's still two new default checks:
bad-chained-comparison
andimplicit-flag-alias
, one of them already fixed a previously undetectedbug in sentry.
Thanks to the community effort our documentation is almost complete,
and almost all messages should have a proper documentation now.
A big thank you to everyone who participated !
The next release is going to be
3.0.0
, bring breaking changes andenact long announced deprecations. There's going to be frequent beta
releases, before the official releases, everyone is welcome to try the betas
so we find problems before the actual release.
What's new in Pylint 2.17.0?
Release date: 2023-03-08
New Features
pyreverse
now supports custom color palettes with the--color-palette
option.
Closes #6738
Add
invalid-name
check forTypeAlias
names.Closes #7081
Accept values of the form
<class name>.<attribute name>
for theexclude-protected
list.Closes #7343
Add
--version
option topyreverse
.Refs #7851
Adds new functionality with preferred-modules configuration to detect
submodules.
Refs #7957
Support implicit namespace packages (PEP 420).
Closes #8154
Add globbing pattern support for
--source-roots
.Closes #8290
Support globbing pattern when defining which file/directory/module to lint.
Closes #8310
pylint now supports
TryStar
nodes from Python 3.11 and should be fullycompatible with Python 3.11.
Closes #8387
New Checks
Add a
bad-chained-comparison
check that emits a warning whenthere is a chained comparison where one expression is semantically
incompatible with the other.
Closes #6559
Adds an
implicit-flag-alias
check that emits a warning when a classderived from
enum.IntFlag
assigns distinct integer values that sharecommon bit positions.
Refs #8102
False Positives Fixed
Fix various false positives for functions that return directly from
structural pattern matching cases.
Closes #5288
Fix false positive for
used-before-assignment
whentyping.TYPE_CHECKING
is used with if/elif/else blocks.Closes #7574
Fix false positive for isinstance-second-argument-not-valid-type with union
types.
Closes #8205
Fix false positive for
used-before-assignment
for named expressionsappearing after the first element in a list, tuple, or set.
Closes #8252
Fix false positive for
wrong-spelling-in-comment
with class names in apython 2 type comment.
Closes #8370
False Negatives Fixed
Fix a false negative for 'missing-parentheses-for-call-in-test' when
inference
failed for the internal of the call as we did not need that information to
raise
correctly.
Refs #8185
Fix false negative for inconsistent-returns with while-loops.
Closes #8280
Other Bug Fixes
Fix
used-before-assignment
false positive when the walrus operatoris used with a ternary operator in dictionary key/value initialization.
Closes #8125
Fix
no-name-in-module
false positive raised when a package defines avariable with the
same name as one of its submodules.
Closes #8148
Fix a crash happening for python interpreter < 3.9 following a failed typing
update.
Closes #8161
Fix
nested-min-max
suggestion message to indicate it's possible to splatiterable objects.
Closes #8168
Fix a crash happening when a class attribute was negated in the start
argument of an enumerate.
Closes #8207
Prevent emitting
invalid-name
for the line on which aglobal
statement is declared.
Closes #8307
Other Changes
Update explanation for
global-variable-not-assigned
and add confidence.Closes #5073
The governance model and the path to become a maintainer have been documented
as part of our effort to guarantee that the software supply chain in which pylint is included is secure.
Refs #8329
v2.16.4
Compare Source
False Positives Fixed
Fix false positive for isinstance-second-argument-not-valid-type with union
types.
Closes #8205
v2.16.3
Compare Source
False Positives Fixed
Fix false positive for
wrong-spelling-in-comment
with class names in apython 2 type comment.
Closes #8370
Other Bug Fixes
Prevent emitting
invalid-name
for the line on which aglobal
statement is declared.
Closes #8307
v2.16.2
Compare Source
New Features
Add
--version
option topyreverse
.Refs #7851
False Positives Fixed
Fix false positive for
used-before-assignment
whentyping.TYPE_CHECKING
is used with if/elif/else blocks.Closes #7574
Fix false positive for
used-before-assignment
for named expressionsappearing after the first element in a list, tuple, or set.
Closes #8252
Other Bug Fixes
Fix
used-before-assignment
false positive when the walrus operatoris used with a ternary operator in dictionary key/value initialization.
Closes #8125
Fix
no-name-in-module
false positive raised when a package defines avariable with the same name as one of its submodules.
Closes #8148
Fix
nested-min-max
suggestion message to indicate it's possible to splatiterable objects.
Closes #8168
Fix a crash happening when a class attribute was negated in the start
argument of an enumerate.
Closes #8207
v2.16.1
Compare Source
Other Bug Fixes
Fix a crash happening for python interpreter < 3.9 following a failed typing
update.
Closes #8161
v2.16.0
Compare Source
Summary -- Release highlights
In 2.16.0 we added aggregation and composition understanding in
pyreverse
, and a way to clearthe cache in between run in server mode (originally for the VS Code integration). Apart from the bug
fixes there's also a lot of new checks, and new extensions that have been asked for for a long time
that were implemented.
If you want to benefit from all the new checks load the following plugins::
We still welcome any community effort to help review, integrate, and add good/bad examples to the doc for
#5953. This should be doable without any
pylint
orastroid
knowledge, so this is the perfect entrypoint if you want to contribute to
pylint
or open source withoutany experience with our code!
Last but not least @clavedeluna and @nickdrozd became triagers, welcome to the team !
What's new in Pylint 2.16.0?
Changes requiring user actions
The
accept-no-raise-doc
option related tomissing-raises-doc
will nowbe correctly taken into account all the time.
Pylint will no longer raise missing-raises-doc (W9006) when no exceptions are
documented and accept-no-raise-doc is true (issue #7208).
If you were expecting missing-raises-doc errors to be raised in that case,
you
will now have to add
accept-no-raise-doc=no
in your configuration to keepthe same behavior.
Closes #7208
New Features
Added the
no-header
output format. If enabled with--output-format=no-header
, it will not include the module name in theoutput.
Closes #5362
Added configuration option
clear-cache-post-run
to support server-likeusage.
Use this flag if you expect the linted files to be altered between runs.
Refs #5401
Add
--allow-reexport-from-package
option to configure theuseless-import-alias
check not to emit a warning if a nameis reexported from a package.
Closes #6006
Update
pyreverse
to differentiate between aggregations and compositions.pyreverse
checks if it's an Instance or a Call of an object via methodparameters (via type hints)
to decide if it's a composition or an aggregation.
Refs #6543
New Checks
Adds a
pointless-exception-statement
check that emits a warning when anException is created and not assigned, raised or returned.
Refs #3110
Add a
shadowed-import
message for aliased imports.Closes #4836
Add new check called
unbalanced-dict-unpacking
to check for unbalanceddict unpacking
in assignment and for loops.
Closes #5797
Add new checker
positional-only-arguments-expected
to check for caseswhen
positional-only arguments have been passed as keyword arguments.
Closes #6489
Added
singledispatch-method
which informs that@singledispatch
shoulddecorate functions and not class/instance methods.
Added
singledispatchmethod-function
which informs that@singledispatchmethod
should decorate class/instance methods and notfunctions.
Closes #6917
Rename
broad-except
tobroad-exception-caught
and add new checkerbroad-exception-raised
which will warn if general exceptions
BaseException
orException
areraised.
Closes #7494
Added
nested-min-max
which flagsmin(1, min(2, 3))
to simplify tomin(1, 2, 3)
.Closes #7546
Extended
use-dict-literal
to also warn about call todict()
whenpassing keyword arguments.
Closes #7690
Add
named-expr-without-context
check to emit a warning if a namedexpression is used outside a context like
if
,for
,while
, ora comprehension.
Refs #7760
Add
invalid-slice-step
check to warn about a slice step value of0
for common builtin sequences.
Refs #7762
Add
consider-refactoring-into-while-condition
check to recommendrefactoring when
a while loop is defined with a constant condition with an immediate
if
statement to check for
break
condition as a first statement.Closes #8015
Extensions
Add new extension checker
dict-init-mutate
that flags mutating adictionary immediately
after the dictionary was created.
Closes #2876
Added
bad-dunder-name
extension check, which flags bad or misspelleddunder methods.
You can use the
good-dunder-names
option to allow specific dunder names.Closes #3038
Added
consider-using-augmented-assign
check forCodeStyle
extensionwhich flags
x = x + 1
to simplify tox += 1
.This check is disabled by default. To use it, load the code style extension
with
load-plugins=pylint.extensions.code_style
and addconsider-using-augmented-assign
in theenable
option.Closes #3391
Add
magic-number
plugin checker for comparison with constants instead ofnamed constants or enums.
You can use it with
--load-plugins=pylint.extensions.magic_value
.Closes #7281
Add
redundant-typehint-argument
message fortyping
plugin for duplicateassign typehints.
Enable the plugin to enable the message with:
--load-plugins=pylint.extensions.typing
.Closes #7636
False Positives Fixed
Fix false positive for
unused-variable
andunused-import
when a nameis only used in a string literal type annotation.
Closes #3299
Document a known false positive for
useless-suppression
when disablingline-too-long
in a module with only comments and no code.Closes #3368
trailing-whitespaces
is no longer reported within strings.Closes #3822
Fix false positive for
global-variable-not-assigned
when a globalvariable is re-assigned via an
ImportFrom
node.Closes #4809
Fix false positive for
use-maxsplit-arg
with custom split method.Closes #4857
Fix
logging-fstring-interpolation
false positive raised when logging andf-string with
%s
formatting.Closes #4984
Fix false-positive for
used-before-assignment
in pattern matchingwith a guard.
Closes #5327
Fix
use-sequence-for-iteration
when unpacking a set with*
.Closes #5788
Fix
deprecated-method
false positive when alias for method is similar toname of deprecated method.
Closes #5886
Fix false positive
assigning-non-slot
when a class attribute isre-assigned.
Closes #6001
Fix false positive for
too-many-function-args
when a function call isassigned to a class attribute inside the class where the function is defined.
Closes #6592
Fixes false positive
abstract-method
on Protocol classes.Closes #7209
Pylint now understands the
kw_only
keyword argument fordataclass
.Closes #7290, closes #6550, closes #5857
Fix false positive for
undefined-loop-variable
infor-else
loops thatuse a function
having a return type annotation of
NoReturn
orNever
.Closes #7311
Fix
used-before-assignment
for functions/classes defined in type checkingguard.
Closes #7368
Fix false positive for
unhashable-member
when subclassingdict
andusing the subclass as a dictionary key.
Closes #7501
Fix the message for
unnecessary-dunder-call
for__aiter__
and__aneext__
. Alsoonly emit the warning when
py-version
>= 3.10.Closes #7529
Fix
used-before-assignment
false positive when else branch callssys.exit
or similar terminating functions.Closes #7563
Fix a false positive for
used-before-assignment
for imports guarded bytyping.TYPE_CHECKING
later used in variable annotations.Closes #7609
Fix a false positive for
simplify-boolean-expression
when multiple valuesare inferred for a constant.
Closes #7626
unnecessary-list-index-lookup
will not be wrongly emitted ifenumerate
is called withstart
.Closes #7682
Don't warn about
stop-iteration-return
when usingnext()
overitertools.cycle
.Closes #7765
Fixes
used-before-assignment
false positive when the walrus operatoris used in a ternary operator.
Closes #7779
Fix
missing-param-doc
false positive when function parameter has anescaped underscore.
Closes #7827
Fixes
method-cache-max-size-none
false positive for methods inheritingfrom
Enum
.Closes #7857
multiple-statements
no longer triggers for function stubs using inlined...
.Closes #7860
Fix a false positive for
used-before-assignment
when a name guarded byif TYPE_CHECKING:
is used as a type annotation in a function body andlater re-imported in the same scope.
Closes #7882
Prevent
used-before-assignment
when imports guarded byif TYPE_CHECKING
are guarded again when used.
Closes #7979
Fixes false positive for
try-except-raise
with multiple exceptions in oneexcept statement if exception are in different namespace.
Closes #8051
Fix
invalid-name
errors fortyping_extension.TypeVar
.Refs #8089
Fix
no-kwoa
false positive for context managers.Closes #8100
Fix a false positive for
redefined-variable-type
whenasync
methodsare present.
Closes #8120
False Negatives Fixed
Code following a call to
quit
,exit
,sys.exit
oros._exit
will be marked as
unreachable
.Refs #519
Emit
used-before-assignment
when function arguments are redefined insidean inner function and accessed there before assignment.
Closes #2374
Fix a false negative for
unused-import
when one module used an import ina type annotation that was also used in another module.
Closes #4150
Flag
superfluous-parens
if parentheses are used during stringconcatenation.
Closes #4792
Emit
used-before-assignment
when relying on names only defined underconditions always testing false.
Closes #4913
consider-using-join
can now be emitted for non-empty string separators.Closes #6639
Emit
used-before-assignment
for further imports guarded byTYPE_CHECKING
Previously, this message was only emitted for imports guarded directly under
TYPE_CHECKING
, not guarded two if-branches deep, nor whenTYPE_CHECKING
was imported from
typing
under an alias.Closes #7539
Fix a false negative for
unused-import
when a constant insidetyping.Annotated
was treated as a reference to an import.Closes #7547
consider-using-any-or-all
message will now be raised in cases whenboolean is initialized, reassigned during loop, and immediately returned.
Closes #7699
Extend
invalid-slice-index
to emit an warning for invalid slice indicesused with string and byte sequences, and range objects.
Refs #7762
Fixes
unnecessary-list-index-lookup
false negative whenenumerate
iscalled with
iterable
as a kwarg.Closes #7770
no-else-return
orno-else-raise
will be emitted ifexcept
blockalways returns or raises.
Closes #7788
Fix
dangerous-default-value
false negative when*
is used.Closes #7818
consider-using-with
now triggers forpathlib.Path.open
.Closes #7964
Other Bug Fixes
Fix bug in detecting
unused-variable
when iterating on variable.Closes #3044
Fix bug in scanning of names inside arguments to
typing.Literal
.See https://peps.python.org/pep-0586/#literals-enums-and-forward-references
for details.
Refs #3299
Update
disallowed-name
check to flag module-level variables.Closes #3701
Pylint will no longer deadlock if a parallel job is killed but fail
immediately instead.
Closes #3899
Fix ignored files being linted when passed on stdin.
Closes #4354
Fix
no-member
false negative when augmented assign is done manually,without
+=
.Closes #4562
Any assertion on a populated tuple will now receive a
assert-on-tuple
warning.
Closes #4655
missing-return-doc
,missing-raises-doc
andmissing-yields-doc
nowrespect
the
no-docstring-rgx
option.Closes #4743
Update
reimported
help message for clarity.Closes #4836
consider-iterating-dictionary
will no longer be raised if bitwiseoperations are used.
Closes #5478
Using custom braces in
msg-template
will now work properly.Closes #5636
Pylint will now filter duplicates given to it before linting. The output
should
be the same whether a file is given/discovered multiple times or not.
Closes #6242, #4053
Remove
__index__
dunder method call fromunnecessary-dunder-call
check.
Closes #6795
Fixed handling of
--
as separator between positional arguments and flags.This was not actually fixed in 2.14.5.
Closes #7003, Refs #7096
Don't crash on
OSError
in config file discovery.Closes #7169
Messages sent to reporter are now copied so a reporter cannot modify the
message sent to other reporters.
Closes #7214
Fixed a case where custom plugins specified by command line could silently
fail.
Specifically, if a plugin relies on the
init-hook
option changingsys.path
beforeit can be imported, this will now emit a
bad-plugin-value
message. Beforethis
change, it would silently fail to register the plugin for use, but would load
any configuration, which could have unintended effects.
Fixes part of #7264.
Update
modified_iterating
checker to fix a crash withfor
loops onempty list.
Closes #7380
Update wording for
arguments-differ
andarguments-renamed
to clarifyoverriding object.
Closes #7390
disable-next
is now correctly scoped to only the succeeding line.Closes #7401
Fixed a crash in the
unhashable-member
checker when using alambda
asa dict key.
Closes #7453
Add
mailcap
to deprecated modules list.Closes #7457
Fix a crash in the
modified-iterating-dict
checker involving instanceattributes.
Closes #7461
invalid-class-object
does not crash anymore when__class__
isassigned alongside another variable.
Closes #7467
--help-msg
now accepts a comma-separated list of message IDs again.Closes #7471
Allow specifying non-builtin exceptions in the
overgeneral-exception
option
using an exception's qualified name.
Closes #7495
Report
no-self-argument
rather thanno-method-argument
for methodswith variadic arguments.
Closes #7507
Fixed an issue where
syntax-error
couldn't be raised on files withinvalid encodings.
Closes #7522
Fix false positive for
redefined-outer-name
when aliasingtyping
e.g. as
t
and guarding imports undert.TYPE_CHECKING
.Closes #7524
Fixed a crash of the
modified_iterating
checker when iterating on a setdefined as a class attribute.
Closes #7528
Use
py-version
to determine if a message should be emitted for messagesdefined with
max-version
ormin-version
.Closes #7569
Improve
bad-thread-instantiation
check to warn iftarget
is notpassed in as a keyword argument
or as a second argument.
Closes #7570
Fixes edge case of custom method named
next
raised an astroid error.Closes #7610
Fixed a multi-processing crash that prevents using any more than 1 thread on
MacOS.
The returned module objects and errors that were cached by the linter plugin
loader
cannot be reliably pickled. This means that
dill
would throw an errorwhen
attempting to serialise the linter object for multi-processing use.
Closes #7635.
Fix crash that happened when parsing files with unexpected encoding starting
with 'utf' like
utf13
.Closes #7661
Fix a crash when a child class with an
__init__
method inherits from aparent class with an
__init__
class attribute.Closes #7742
Fix
valid-metaclass-classmethod-first-arg
default config value from "cls"to "mcs"
which would cause both a false-positive and false-negative.
Closes #7782
Fixes a crash in the
unnecessary_list_index_lookup
check when usingenumerate
withstart
and a class attribute.Closes #7821
Fixes a crash in
stop-iteration-return
when thenext
builtin iscalled without arguments.
Closes #7828
When pylint exit due to bad arguments being provided the exit code will now
be the expected
32
.Refs #7931
Fixes a
ModuleNotFound
exception when running pylint on a Django projectwith the
pylint_django
plugin enabled.Closes #7938
Fixed a crash when inferring a value and using its qname on a slice that was
being incorrectly called.
Closes #8067
Use better regex to check for private attributes.
Refs #8081
Fix issue with new typing Union syntax in runtime context for Python 3.10+.
Closes #8119
Other Changes
Pylint now provides basic support for Python 3.11.
Closes #5920
Update message for
abstract-method
to include child class name.Closes #7124
Update Pyreverse's dot and plantuml printers to detect when class methods are
abstract and show them with italic font.
For the dot printer update the label to use html-like syntax.
Closes #7346
The
docparams
extension now considers typing in Numpy style docstringsas "documentation" for the
missing-param-doc
message.Refs #7398
Relevant
DeprecationWarnings
are now raised withstacklevel=2
, sothey have the callsite attached in the message.
Closes #7463
Add a
minimal
option topylint-config
and its toml generator.Closes #7485
Add method name to the error messages of
no-method-argument
andno-self-argument
.Closes #7507
Prevent leaving the pip install cache in the Docker image.
Refs #7544
Add a keyword-only
compare_constants
argument tosafe_infer
.Refs #7626
Add
default_enabled
option to optional message dict. Provides an optionto disable a checker message by default.
To use a disabled message, the user must enable it explicitly by adding the
message to the
enable
option.Refs #7629
Sort
--generated-rcfile
output.Refs #7655
epylint is now deprecated and will be removed in pylint 3.0.0. All emacs and
flymake related
files were removed and their support will now happen in an external
repository :
https://github.com/emacsorphanage/pylint.
Closes #7737
Adds test for existing preferred-modules configuration functionality.
Refs #7957
Internal Changes
This shores up the tests that cover the loading of custom plugins as affected
by any changes made to the
sys.path
during execution of aninit-hook
.Given the existing contract of allowing plugins to be loaded by fiddling with
the path in this way, this is now the last bit of work needed to close Github
issue #7264.
Closes #7264
v2.15.10
Compare Source
False Positives Fixed
Fix
use-sequence-for-iteration
when unpacking a set with*
.Closes #5788
Fix false positive
assigning-non-slot
when a class attribute isre-assigned.
Closes #6001
Fixes
used-before-assignment
false positive when the walrus operatoris used in a ternary operator.
Closes #7779
Prevent
used-before-assignment
when imports guarded byif TYPE_CHECKING
are guarded again when used.
Closes #7979
Other Bug Fixes
Using custom braces in
msg-template
will now work properly.Closes #5636
v2.15.9
Compare Source
False Positives Fixed
Fix false-positive for
used-before-assignment
in pattern matching with a guard.Closes #5327
Other Bug Fixes
Pylint will no longer deadlock if a parallel job is killed but fail immediately instead.
Closes #3899
When pylint exit due to bad arguments being provided the exit code will now be the expected
32
.Refs #7931
Fixes a
ModuleNotFound
exception when running pylint on a Django project with thepylint_django
plugin enabled.Closes #7938
v2.15.8
Compare Source
False Positives Fixed
Document a known false positive for
useless-suppression
when disablingline-too-long
in a module with only comments and no code.Closes #3368
Fix
logging-fstring-interpolation
false positive raised when logging and f-string with%s
formatting.Closes #4984
Fixes false positive
abstract-method
on Protocol classes.Closes #7209
Fix
missing-param-doc
false positive when function parameter has an escaped underscore.Closes #7827
multiple-statements
no longer triggers for function stubs using inlined...
.Closes #7860
v2.15.7
Compare Source
False Positives Fixed
Fix
deprecated-method
false positive when alias for method is similar toname of deprecated method.
Closes #5886
Fix a false positive for
used-before-assignment
for imports guarded bytyping.TYPE_CHECKING
later used in variable annotations.Closes #7609
Other Bug Fixes
Pylint will now filter duplicates given to it before linting. The output
should be the same whether a file is given/discovered multiple times or not.
Closes #6242, #4053
Fixes a crash in
stop-iteration-return
when thenext
builtin iscalled without arguments.
Closes #7828
v2.15.6
Compare Source
False Positives Fixed
Fix false positive for
unhashable-member
when subclassingdict
andusing the subclass as a dictionary key.
Closes #7501
unnecessary-list-index-lookup
will not be wrongly emitted ifenumerate
is called withstart
.Closes #7682
Don't warn about
stop-iteration-return
when usingnext()
overitertools.cycle
.Closes #7765
Other Bug Fixes
Messages sent to reporter are now copied so a reporter cannot modify the
message sent to other reporters.
Closes #7214
Fixes edge case of custom method named
next
raised an astroid error.Closes #7610
Fix crash that happened when parsing files with unexpected encoding starting
with 'utf' like
utf13
.Closes #7661
Fix a crash when a child class with an
__init__
method inherits from aparent class with an
__init__
class attribute.Closes #7742
v2.15.5
Compare Source
What's new in Pylint 2.15.5?
Release date: 2022-10-21
False Positives Fixed
Fix a false positive for
simplify-boolean-expression
when multiple valuesare inferred for a constant.
Closes #7626
Other Bug Fixes
Remove
__index__
dunder method call fromunnecessary-dunder-call
check.
Closes #6795
Fixed a multi-processing crash that prevents using any more than 1 thread on
MacOS.
The returned module objects and errors that were cached by the linter plugin loader cannot be reliably pickled. This means that
dill
would throw an error when attempting to serialise the linter object for multi-processing use.Closes #7635.
Other Changes
Add a keyword-only
compare_constants
argument tosafe_infer
.Refs #7626
Sort
--generated-rcfile
output.Refs #7655
v2.15.4
Compare Source
False Positives Fixed
Fix the message for
unnecessary-dunder-call
for__aiter__
and__anext__
. Alsoonly emit the warning when
py-version
>= 3.10.Closes #7529
Other Bug Fixes
Fix bug in detecting
unused-variable
when iterating on variable.Closes #3044
Fixed handling of
--
as separator between positional arguments and flags.This was not actually fixed in 2.14.5.
Closes #7003, Refs #7096
Report
no-self-argument
rather thanno-method-argument
for methodswith variadic arguments.
Closes #7507
Fixed an issue where
syntax-error
couldn't be raised on files withinvalid encodings.
Closes #7522
Fix false positive for
redefined-outer-name
when aliasingtyping
e.g. as
t
and guarding imports undert.TYPE_CHECKING
.Closes #7524
Fixed a crash of the
modified_iterating
checker when iterating on a setdefined as a class attribute.
Closes #7528
Fix bug in scanning of names inside arguments to
typing.Literal
.See https://peps.python.org/pep-0586/#literals-enums-and-forward-references
for details.
Refs #3299
Other Changes
Add method name to the error messages of
no-method-argument
andno-self-argument
.Closes #7507
v2.15.3
Compare Source
Fixed a crash in the
unhashable-member
checker when using alambda
as a dict key.Closes #7453
Fix a crash in the
modified-iterating-dict
checker involving instance attributes.Closes #7461
invalid-class-object
does not crash anymore when__class__
is assigned alongside another variable.Closes #7467
Fix false positive for
global-variable-not-assigned
when a global variable is re-assigned via anImportFrom
node.Closes #4809
Fix false positive for
undefined-loop-variable
infor-else
loops that use a functionhaving a return type annotation of
NoReturn
orNever
.Closes #7311
--help-msg
now accepts a comma-separated list of message IDs again.Closes #7471
v2.15.2
Compare Source
Fixed a case where custom plugins specified by command line could silently fail.
Specifically, if a plugin relies on the
init-hook
option changingsys.path
beforeit can be imported, this will now emit a
bad-plugin-value
message. Before thischange, it would silently fail to register the plugin for use, but would load
any configuration, which could have unintended effects.
Fixes part of #7264.
Fix
used-before-assignment
for functions/classes defined in type checking guard.Closes #7368
Update
modified_iterating
checker to fix a crash withfor
loops on empty list.Closes #7380
The
docparams
extension now considers typing in Numpy style docstringsas "documentation" for the
missing-param-doc
message.Refs #7398
Fix false positive for
unused-variable
andunused-import
when a name is only used in a string literal type annotation.Closes #3299
Fix false positive for
too-many-function-args
when a function call is assigned to a class attribute inside the class where the function is defined.Closes #6592
Fix
used-before-assignment
for functions/classes defined in type checkConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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 Mend Renovate. View repository job log here.