Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.
Fix: on Python 3.14 and later, a for loop completing immediately before a
function return could mistakenly report an uncovered branch. This is now
fixed, closing issue 2168_.
Fix: on Python 3.14 and later, the else clause of a try whose body is
a with statement could incorrectly be reported as covered when the
with raised. This is now fixed, closing issue 2289_.
Fix: with dynamic_context = test_function, test methods written as
@staticmethod or @classmethod were not given a context of their own.
Now they are, on Python 3.11 and later. Closes issue 1923_.
Pylint 4.1.0 could not be uploaded to PyPI, because it required an unreleased
version of dill on Python 3.15, and PyPI refuses such a dependency. 4.1.1 is
the first 4.1 release available on PyPI, see the 4.1.0 changes below.
Startup is about 25% faster thanks to lazy imports. The import checker caches
its isort configuration, which makes pylint about 17% faster on ansible.
Finding the files to lint with --recursive=y no longer walks ignored
directories such as .venv or node_modules, which took seconds on large
trees. The duplicate-code checker and symilar also received optimizations
that result in considerable performance improvements and memory use reduction
on larger codebases. For example, pandas analysis went from 20 min to 55 s and
pylint does not get OOM-killed when analyzing cpython anymore.
Python 3.15 support progresses: the unpacking in comprehensions added by
PEP 798 no longer raises false positives, and the standard library
deprecations of Python 3.15 are followed.
For CI, there is a new built-in junit output format
(--output-format=junit), the NO_COLOR and FORCE_COLOR environment
variables are respected, and the files to lint can now be set with the
files option in the configuration file.
New checks: looping-through-iterator, impossible-comparison,
chained-comparison-all-equal and
using-comprehension-unpacking-in-unsupported-version.
Running with --jobs no longer duplicates the messages of extensions or
ignores extensions enabled in the configuration.
Plugin authors: the confidence parameter can no longer be None, except
in is_message_enabled, and the MSG_STATE_* constants are deprecated in
favor of the MessageDisableReason enum.
The required astroid version is now 4.3.2. See the astroid changelog for additional fixes, features, and performance improvements applicable to pylint.
Breaking Changes
The confidence parameter is no longer nullable on any APIs except for
is_message_enabled (where confidence=None means "don't filter by
confidence"). The default became interfaces.UNDEFINED (an immutable value);
the behavior is unchanged unless you were passing an explicit None. This
avoids a runtime check in multiple function to set the default value conditionally.
The constants.MSG_STATE_* integer were replaced by a MessageDisableReason enum.
The old names remain as deprecated aliases pointing at the enum members.
MessageDisableReason is an IntEnum so existing code comparing the return of
_get_message_state_scope to the literal 0 / 1 / 2 keeps working.
Support for the NO_COLOR and FORCE_COLOR environment variables has been added.
When running pylint, the reporter that writes to stdout is switched between text
and colorized according to the requested mode.
The order is: NO_COLOR > FORCE_COLOR > --output-format=....
The dict-init-mutate message now includes a suggested dictionary literal showing how to combine the initialization and subsequent mutations into a single statement.
Add a built-in junit output format (--output-format=junit) that produces JUnit-compatible XML output for CI/CD integration with Jenkins, Azure DevOps, GitLab CI, and GitHub Actions.
Trailing pragmas understood by other common tooling (# type: ignore,
# pyright: ignore, # noqa, # pragma: no cover and
# pragma: no branch) are no longer counted toward the line length, so a line
is not flagged as line-too-long solely because of such a pragma. This mirrors
the existing behaviour for Pylint's own # pylint: pragmas.
Added a new checker looping-through-iterator (W4801) to detect when an iterator from an outer scope is consumed in a nested loop, which can lead to the iterator being unexpectedly exhausted.
Add new checks impossible-comparison and chained-comparison-all-equal.
impossible-comparison flags boolean conditions whose chain of numeric
comparisons is logically contradictory and can never be true (for example
a > b and b > a). chained-comparison-all-equal flags boolean conditions
whose operands form a cycle of weak inequalities (<= or >=) and can be
simplified to a chain of equalities (for example a >= b and b >= a is
equivalent to a == b).
Add using-comprehension-unpacking-in-unsupported-version (W2607), emitted when
the code uses the unpacking in comprehensions added by PEP 798 while
py-version still includes a Python version that cannot compile it.
Fix a false positive for unnecessary-negation (C0117) when negating a
comparison between dict views (dict.keys()/dict.items()), which like
set/frozenset support only a partial (subset/superset) ordering, so
not a.items() <= b.items() is not equivalent to a.items() > b.items().
Fix a false positive for consider-using-generator and use-a-generator
with an asynchronous list comprehension. Turning it into a generator expression
would create an asynchronous generator, which those functions cannot consume.
Fixed a false positive assigning-non-slot when assigning to an inherited
descriptor through an instance returned by a method annotated with the
subclass. This regressed in pylint 3.0.0.
Fixed a false positive no-member when a classmethod annotated with
typing.Self is overridden in a subclass and its result is used directly,
as in Subclass.build().only_on_subclass(). The return type is now narrowed
to the subclass rather than the base cl
❗ Important
✂ PR body was truncated to here.
Configuration
📅 Schedule: (UTC)
Branch creation
Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
Automerge
At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
If you want to rebase/retry this PR, check this box
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
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:
Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.
Release Notes
codecov/codecov-action (codecov/codecov-action)v7.1.1
Compare Source
What's Changed
Full Changelog: codecov/codecov-action@v7.1.0...v7.1.1
commitizen-tools/commitizen (commitizen)v4.19.0
Compare Source
Feat
- add extensible commit filters
coveragepy/coveragepy (coverage)v7.16.2
Compare Source
Fix: on Python 3.14 and later, a for loop completing immediately before a
function return could mistakenly report an uncovered branch. This is now
fixed, closing issue 2168_.
Fix: on Python 3.14 and later, the else clause of a try whose body is
a with statement could incorrectly be reported as covered when the
with raised. This is now fixed, closing issue 2289_.
Fix: with dynamic_context = test_function, test methods written as
@staticmethod or @classmethod were not given a context of their own.
Now they are, on Python 3.11 and later. Closes issue 1923_.
.. _issue 1923: #1923
.. _issue 2168: #2168
.. _issue 2289: #2289
.. _changes_7-16-1:
pycqa/flake8 (flake8)v7.4.1
Compare Source
v7.4.0
Compare Source
graphql-python/gql (gql)v4.4.0
Compare Source
Features
Misc
Fixes
- Fix DeprecationWarning in test_requests_batch online tests (#582)
- Don't fall back to Apollo when not in subprotocols (#586)
- DSL using immutable graphql-core AST classes (#589)
- Support standard http.cookiejar.CookieJar in RequestsHTTPTransport cookies typing (#594)
- Fix gql to work with graphql-core 3.3.0rc0 (#597)
- Skip multipart parts with empty Content-Type instead of raising (#598)
- Coerce a single value to a list when serializing list variables (#611)
PyCQA/isort (isort)v9.0.2
Compare Source
🪲 Fixes
Other changes
Full Changelog: PyCQA/isort@9.0.1...9.0.2
maxbrunet/pre-commit-renovate (maxbrunet/pre-commit-renovate)v44.132.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.132.2 for more changes
v44.131.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.131.0 for more changes
v44.130.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.130.0 for more changes
v44.129.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.129.0 for more changes
v44.128.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.128.3 for more changes
v44.128.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.128.1 for more changes
v44.128.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.128.0 for more changes
v44.127.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.127.1 for more changes
v44.127.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.127.0 for more changes
v44.126.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.126.0 for more changes
v44.125.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.125.2 for more changes
v44.125.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.125.1 for more changes
v44.124.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.124.2 for more changes
v44.123.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.123.1 for more changes
v44.123.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.123.0 for more changes
v44.121.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.121.4 for more changes
v44.121.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.121.3 for more changes
v44.121.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.121.1 for more changes
v44.121.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.121.0 for more changes
v44.120.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.120.0 for more changes
v44.119.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.119.1 for more changes
v44.119.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.119.0 for more changes
v44.118.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.118.1 for more changes
v44.118.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.118.0 for more changes
v44.117.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.117.2 for more changes
v44.117.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.117.1 for more changes
v44.117.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.117.0 for more changes
v44.116.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.116.1 for more changes
v44.116.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.116.0 for more changes
v44.115.13
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.13 for more changes
v44.115.12
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.12 for more changes
v44.115.11
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.11 for more changes
v44.115.10
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.10 for more changes
v44.115.9
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.9 for more changes
v44.115.8
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.8 for more changes
v44.115.7
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.7 for more changes
v44.115.6
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.6 for more changes
v44.115.5
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.5 for more changes
v44.115.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.4 for more changes
v44.115.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.3 for more changes
v44.115.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.2 for more changes
v44.115.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.1 for more changes
v44.115.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.115.0 for more changes
v44.114.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.114.0 for more changes
v44.113.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.113.0 for more changes
v44.112.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.112.3 for more changes
v44.111.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.111.4 for more changes
v44.111.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.111.3 for more changes
v44.111.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.111.2 for more changes
v44.110.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.110.0 for more changes
v44.109.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.109.1 for more changes
v44.109.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.109.0 for more changes
v44.108.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.108.2 for more changes
v44.108.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.108.1 for more changes
v44.108.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.108.0 for more changes
v44.107.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.107.2 for more changes
v44.107.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.107.0 for more changes
v44.106.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.106.0 for more changes
v44.105.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.105.4 for more changes
v44.105.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.105.2 for more changes
v44.105.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.105.1 for more changes
v44.105.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.105.0 for more changes
v44.104.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.104.2 for more changes
v44.104.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.104.1 for more changes
v44.104.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.104.0 for more changes
v44.103.7
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.7 for more changes
v44.103.6
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.6 for more changes
v44.103.5
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.5 for more changes
v44.103.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.4 for more changes
v44.103.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.3 for more changes
v44.103.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.2 for more changes
v44.103.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.1 for more changes
v44.103.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.103.0 for more changes
v44.101.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.101.3 for more changes
v44.101.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.101.2 for more changes
v44.101.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.101.0 for more changes
v44.100.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.100.0 for more changes
v44.97.6
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.97.6 for more changes
v44.97.5
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.97.5 for more changes
v44.97.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.97.4 for more changes
v44.97.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.97.2 for more changes
v44.97.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.97.1 for more changes
v44.96.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.96.2 for more changes
v44.96.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.96.1 for more changes
v44.95.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.95.0 for more changes
v44.94.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.94.4 for more changes
v44.94.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.94.3 for more changes
v44.94.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.94.2 for more changes
v44.94.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.94.1 for more changes
v44.94.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.94.0 for more changes
v44.93.8
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.8 for more changes
v44.93.7
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.7 for more changes
v44.93.6
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.6 for more changes
v44.93.5
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.5 for more changes
v44.93.4
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.4 for more changes
v44.93.3
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.3 for more changes
v44.93.2
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.2 for more changes
v44.93.1
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.1 for more changes
v44.93.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.93.0 for more changes
v44.91.0
Compare Source
See https://github.com/renovatebot/renovate/releases/tag/44.91.0 for more changes
python/mypy (mypy)v2.4.0
Compare Source
pre-commit/mirrors-mypy (pre-commit/mirrors-mypy)v2.4.0
Compare Source
pycqa/isort (pycqa/isort)v9.0.2
Compare Source
🪲 Fixes
Other changes
Full Changelog: PyCQA/isort@9.0.1...9.0.2
pycqa/pylint (pycqa/pylint)v4.1.1
Compare Source
What's new in Pylint 4.1.1?
Release date: 2026-09-29
Other Changes
Pylint 4.1.0 could not be uploaded to PyPI, because it required an unreleased
version of dill on Python 3.15, and PyPI refuses such a dependency. 4.1.1 is
the first 4.1 release available on PyPI, see the 4.1.0 changes below.
Refs #11495
v4.1.0
Compare Source
What's new in Pylint 4.1.0?
Release date: 2026-09-29
Startup is about 25% faster thanks to lazy imports. The import checker caches
its isort configuration, which makes pylint about 17% faster on ansible.
Finding the files to lint with --recursive=y no longer walks ignored
directories such as .venv or node_modules, which took seconds on large
trees. The duplicate-code checker and symilar also received optimizations
that result in considerable performance improvements and memory use reduction
on larger codebases. For example, pandas analysis went from 20 min to 55 s and
pylint does not get OOM-killed when analyzing cpython anymore.
Python 3.15 support progresses: the unpacking in comprehensions added by
PEP 798 no longer raises false positives, and the standard library
deprecations of Python 3.15 are followed.
For CI, there is a new built-in junit output format
(--output-format=junit), the NO_COLOR and FORCE_COLOR environment
variables are respected, and the files to lint can now be set with the
files option in the configuration file.
New checks: looping-through-iterator, impossible-comparison,
chained-comparison-all-equal and
using-comprehension-unpacking-in-unsupported-version.
Running with --jobs no longer duplicates the messages of extensions or
ignores extensions enabled in the configuration.
Plugin authors: the confidence parameter can no longer be None, except
in is_message_enabled, and the MSG_STATE_* constants are deprecated in
favor of the MessageDisableReason enum.
The required astroid version is now 4.3.2. See the astroid changelog for additional fixes, features, and performance improvements applicable to pylint.
Breaking Changes
The confidence parameter is no longer nullable on any APIs except for
is_message_enabled (where confidence=None means "don't filter by
confidence"). The default became interfaces.UNDEFINED (an immutable value);
the behavior is unchanged unless you were passing an explicit None. This
avoids a runtime check in multiple function to set the default value conditionally.
The constants.MSG_STATE_* integer were replaced by a MessageDisableReason enum.
The old names remain as deprecated aliases pointing at the enum members.
MessageDisableReason is an IntEnum so existing code comparing the return of
_get_message_state_scope to the literal 0 / 1 / 2 keeps working.
Refs #11018
New Features
Add support for ignore-pattern-in-long-lines to allow ignoring specific parts of a line when checking line length.
Refs #3352
Support for the NO_COLOR and FORCE_COLOR environment variables has been added.
When running pylint, the reporter that writes to stdout is switched between text
and colorized according to the requested mode.
The order is: NO_COLOR > FORCE_COLOR > --output-format=....
Closes #3995
The dict-init-mutate message now includes a suggested dictionary literal showing how to combine the initialization and subsequent mutations into a single statement.
Closes #7819
Add a built-in junit output format (--output-format=junit) that produces JUnit-compatible XML output for CI/CD integration with Jenkins, Azure DevOps, GitLab CI, and GitHub Actions.
Closes #9143
Trailing pragmas understood by other common tooling (# type: ignore,
# pyright: ignore, # noqa, # pragma: no cover and
# pragma: no branch) are no longer counted toward the line length, so a line
is not flagged as line-too-long solely because of such a pragma. This mirrors
the existing behaviour for Pylint's own # pylint: pragmas.
Closes #10172
pyreverse: add --no-signatures to show method names without parameter lists or return type annotations in class diagrams.
Closes #10772
Add support for --known-first-party similar to --known-third-party.
Refs #10803
New Checks
Added a new checker looping-through-iterator (W4801) to detect when an iterator from an outer scope is consumed in a nested loop, which can lead to the iterator being unexpectedly exhausted.
Refs #2996
Add new checks impossible-comparison and chained-comparison-all-equal.
impossible-comparison flags boolean conditions whose chain of numeric
comparisons is logically contradictory and can never be true (for example
a > b and b > a). chained-comparison-all-equal flags boolean conditions
whose operands form a cycle of weak inequalities (<= or >=) and can be
simplified to a chain of equalities (for example a >= b and b >= a is
equivalent to a == b).
Closes #5814
Add using-comprehension-unpacking-in-unsupported-version (W2607), emitted when
the code uses the unpacking in comprehensions added by PEP 798 while
py-version still includes a Python version that cannot compile it.
Refs #10982
False Positives Fixed
Fix a false positive for unnecessary-negation (C0117) when negating a
comparison between dict views (dict.keys()/dict.items()), which like
set/frozenset support only a partial (subset/superset) ordering, so
not a.items() <= b.items() is not equivalent to a.items() > b.items().
Closes #3668
Fix false positives for attribute-defined-outside-init where __init__
(etc.) uses a helper method to create attributes.
Closes #5214
Fix a false positive for consider-using-generator and use-a-generator
with an asynchronous list comprehension. Turning it into a generator expression
would create an asynchronous generator, which those functions cannot consume.
Closes #7271
Fixed a false positive assigning-non-slot when assigning to an inherited
descriptor through an instance returned by a method annotated with the
subclass. This regressed in pylint 3.0.0.
Fixed by upgrading astroid to 4.1.0.
Closes #8053
Fixed a false positive no-member when a classmethod annotated with
typing.Self is overridden in a subclass and its result is used directly,
as in Subclass.build().only_on_subclass(). The return type is now narrowed
to the subclass rather than the base cl
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.