Update all dependencies #65
Open
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:
v4→v6v4→v7v5→v6v4→v67.10.2→7.13.133.1.0→34.1.0^3.0.0→^4.0.0^0.5.0→^0.6.0Release Notes
actions/checkout (actions/checkout)
v6Compare Source
v5Compare Source
actions/download-artifact (actions/download-artifact)
v7Compare Source
v6Compare Source
v5Compare Source
actions/setup-python (actions/setup-python)
v6Compare Source
actions/upload-artifact (actions/upload-artifact)
v6Compare Source
v5Compare Source
coveragepy/coveragepy (coverage)
v7.13.1Compare Source
Added: the JSON report now includes a
"start_line"key for function andclass regions, indicating the first line of the region in the source. Closes
issue 2110_.Added: The
debug datacommand now takes file names as arguments on thecommand line, so you can inspect specific data files without needing to set
the
COVERAGE_FILEenvironment variable.Fix: the JSON report used to report module docstrings as executed lines,
which no other report did, as described in
issue 2105_. This is now fixed,thanks to Jianrong Zhao.
Fix: coverage.py uses a more disciplined approach to detecting where
third-party code is installed, and avoids measuring it. This shouldn't change
any behavior. If you find that it does, please get in touch.
Performance: data files that will be combined now record their hash as part
of the file name. This lets us skip duplicate data more quickly, speeding the
combining step.
Docs: added a section explaining more about what is considered a missing
branch and how it is reported: :ref:
branch_explain, as requested inissue 1597. Thanks toAyisha Mohammed <pull 2092_>.Tests: the test suite misunderstood what core was being tested if
COVERAGE_COREwasn't set on 3.14+. This is now fixed, closingissue 2109_... _issue 1597: #1597
.. _pull 2092: #2092
.. _issue 2105: #2105
.. _issue 2109: #2109
.. _issue 2110: #2110
.. _changes_7-13-0:
v7.13.0Compare Source
Feature: coverage.py now supports :file:
.coveragerc.tomlconfigurationfiles. These files use TOML syntax and take priority over
:file:
pyproject.tomlbut lower priority than :file:.coveragercfiles.Closes
issue 1643_ thanks toOlena Yefymenko <pull 1952_>_.Fix: we now include a permanent .pth file which is installed with the code,
fixing
issue 2084. In 7.12.1b1 this was done incorrectly: it didn't workwhen using the source wheel (
py3-none-any). This is now fixed. Thanks,Henry Schreiner <pull 2100_>.Deprecated: when coverage.py is installed, it creates three command entry
points:
coverage,coverage3, andcoverage-3.10(if installed forPython 3.10). The second and third of these are not needed and will
eventually be removed. They still work for now, but print a message about
their deprecation.
.. _issue 1643: #1643
.. _pull 1952: #1952
.. _pull 2100: #2100
.. _changes_7-12-1b1:
v7.12.0Compare Source
The HTML report now shows separate coverage totals for statements and
branches, as well as the usual combined coverage percentage. Thanks to Ryuta
Otsuka for the
discussion <issue 2081_>_ and theimplementation <pull 2085_>_.The JSON report now includes separate coverage totals for statements and
branches, thanks to
Ryuta Otsuka <pull 2090_>_.Fix:
except*clauses were not handled properly under the "sysmon"measurement core, causing KeyError exceptions as described in
issue 2086_.This is now fixed.
Fix: we now defend against aggressive mocking of
open()that could causeerrors inside coverage.py. An example of a failure is in
issue 2083_.Fix: in unusual cases where a test suite intentionally exhausts the system's
file descriptors to test handling errors in
open(), coverage.py wouldfail when trying to open source files, as described in
issue 2091_. Thisis now fixed.
A small tweak to the HTML report: file paths now use thin spaces around
slashes to make them easier to read.
.. _issue 2081: #2081
.. _issue 2083: #2083
.. _pull 2085: #2085
.. _issue 2086: #2086
.. _pull 2090: #2090
.. _issue 2091: #2091
.. _changes_7-11-3:
v7.11.3Compare Source
Fix: the 7.11.1 changes meant that conflicts between a requested measurement
core and other settings would raise an error. This was a breaking change from
previous behavior, as reported in
issue 2076_ andissue 2078_.The previous behavior has been restored: when the requested core conflicts
with other settings, another core is used instead, and a warning is issued.
For contributors: the repo has moved from Ned's
nedbat GitHub account_ tothe
coveragepy GitHub organization_. The default branch has changed frommaster to main.
.. _issue 2076: #2076
.. _issue 2078: #2078
.. _nedbat GitHub account: https://github.com/nedbat
.. _coveragepy GitHub organization: https://github.com/coveragepy
.. _changes_7-11-2:
v7.11.2Compare Source
Fix: using the "sysmon" measurement core in 7.11.1, if Python code was
claimed to come from a non-Python file, a
NotPythonexception could beraised. This could happen for example with Jinja templates compiled to
Python, as reported in
issue 2077_. This is now fixed.Doc: corrected the first entry in the 7.11.1 changelog.
.. _issue 2077: #2077
.. _changes_7-11-1:
v7.11.1Compare Source
Fix: some chanages to details of how the measurement core is chosen, and how
conflicting settings are handled. The "sysmon" core cannot be used with some
conurrency settings, with dynamic context, and in Python 3.12/3.13, with
branch measurement.
If the core is not specified and defaults to "sysmon" (Python 3.14+), but
other settings conflict with sysmon, then the "ctrace" core will be used
instead with no warning. For concurrency conflicts, this used to produce an
error, as described in
issue 2064_.If the "sysmon" core is explicitly requested in your configuration, but
other settings conflict, an error is now raised. This used to produce a
warning.
Fix: some multi-line case clauses or for loops (and probably other
constructs) could cause incorrect claims of missing branches with the
sys.monitoring core, as described in
issue 2070_. This is now fixed.Fix: when running in pytest under coverage, a
breakpoint()would stop inthe wrong frame, one level down from where it should, as described in
issue 1420_. This was due to a coverage change in v6.4.1 that seemed to give aslight performance improvement, but I couldn't reproduce the performance
gain, so it's been reverted, fixing the debugger problem.
A new debug option
--debug=coreshows which core is in use and why.Split
sqlitedebugging information out of thesys:ref:coverage debug <cmd_debug>and :ref:cmd_run_debugoptions since it's bulky and notvery useful.
Updated the :ref:
howitworkspage to better describe the three differentmeasurement cores.
.. _issue 1420: #1420
.. _issue 2064: #2064
.. _issue 2070: #2070
.. _changes_7-11-0:
v7.11.0Compare Source
.. _changes_7-10-7:
v7.10.7Compare Source
Performance: with branch coverage in large files, generating HTML, JSON, or
LCOV reports could take far too long due to some quadratic behavior when
creating the function and class index pages. This is now fixed, closing
issue 2048_. Thanks to Daniel Diniz for help diagnosing the problem.Most warnings and a few errors now have links to a page in the docs
explaining the specific message. Closes
issue 1921_... _issue 1921: #1921
.. _issue 2048: #2048
.. _changes_7-10-6:
v7.10.6Compare Source
Fix:
sourcedirectories were not properly communicated to subprocessesthat ran in different directories, as reported in
issue 1499_. This is nowfixed.
Performance:
Alex Gaynor continues fine-tuning <pull 2038_>_ the speed ofcombination, especially with many contexts.
.. _issue 1499: #1499
.. _pull 2038: #2038
.. _changes_7-10-5:
v7.10.5Compare Source
coverage combine: it's now about twice asfast! Huge thanks to Alex Gaynor for pull requests
2032 <pull 2032_>,2033 <pull 2033_>, and2034 <pull 2034_>_... _pull 2032: #2032
.. _pull 2033: #2033
.. _pull 2034: #2034
.. _changes_7-10-4:
v7.10.4Compare Source
Added
patch = forkfor times when the built-in forking support isinsufficient.
Fix:
patch = execvalso inherits the entire coverage configuration now... _changes_7-10-3:
v7.10.3Compare Source
Fixes for
patch = subprocess:If subprocesses spawned yet more subprocesses simultaneously, some coverage
could be missed. This is now fixed, closing
issue 2024_.If subprocesses were created in other directories, their data files were
stranded there and not combined into the totals, as described in
issue 2025_. This is now fixed.On Windows (or maybe only some Windows?) the patch would fail with a
ModuleNotFounderror trying to import coverage. This is now fixed,closing
issue 2022_.Originally only options set in the coverage configuration file would apply
to subprocesses. Options set on the
coverage runcommand line (such as--branch) wouldn't be communicated to the subprocesses. This couldlead to combining failures, as described in
issue 2021_. Now the entireconfiguration is used in subprocesses, regardless of its origin.
Added
debug=patchto help diagnose problems.Fix: really close all SQLite databases, even in-memory ones. Closes
issue 2017_... _issue 2017: #2017
.. _issue 2021: #2021
.. _issue 2022: #2022
.. _issue 2024: #2024
.. _issue 2025: #2025
.. _changes_7-10-2:
kubernetes-client/python (kubernetes)
v34.1.0Compare Source
Kubernetes API Version: v1.34.1
pylint-dev/pylint (pylint)
v4.0.4Compare Source
What's new in Pylint 4.0.4?
Release date: 2025-11-30
False Positives Fixed
Fixed false positive for
invalid-namewhere module-level constants were incorrectly classified as variables when a class-level attribute with the same name exists.Closes #10719
Fix a false positive for
invalid-nameon an UPPER_CASED name inside anifbranch that assigns an object.Closes #10745
v4.0.3Compare Source
What's new in Pylint 4.0.3?
Release date: 2025-11-13
False Positives Fixed
Add Enum dunder methods
_generate_next_value_,_missing_,_numeric_repr_,_add_alias_, and_add_value_alias_to the list passed to--good-dunder-names.Closes #10435
Fixed false positive for
invalid-namewithtyping.Annotated.Closes #10696
Fix false positive for
f-string-without-interpolationwith template stringswhen using format spec.
Closes #10702
Fix a false positive when an UPPER_CASED class attribute was raising an
invalid-namewhen typed withFinal.Closes #10711
Fix a false positive for
unbalanced-tuple-unpackingwhen a tuple is assigned to a function call and the structure of the function's return value is ambiguous.Closes #10721
Other Bug Fixes
Make 'ignore' option work as expected again.
Closes #10669
Fix crash for
consider-using-assignment-exprwhen a variable annotation without assignmentis used as the
iftest expression.Closes #10707
Fix crash for
prefer-typing-namedtupleandconsider-math-not-floatwhena
sliceobject is called.Closes #10708
v4.0.2Compare Source
False Positives Fixed
Fix false positive for
invalid-nameon a partially uninferable module-level constant.Closes #10652
Fix a false positive for
invalid-nameon exclusive module-level assignmentscomposed of three or more branches. We won't raise
disallowed-nameon module-level names that can't be inferreduntil a further refactor to remove this false negative is done.
Closes #10664
Fix false positive for
invalid-nameforTypedDictinstances.Closes #10672
v4.0.1Compare Source
What's new in Pylint 4.0.1?
Release date: 2025-10-14
False Positives Fixed
Exclude
__all__and__future__.annotationsfromunused-variable.Closes #10019
Fix false-positive for
bare-name-capture-patternif a case guard is used.Closes #10647
Check enums created with the
Enum()functional syntax to pass against the--class-rgxfor theinvalid-namecheck, like other enums.Closes #10660
v4.0.0Compare Source
Pylint now supports Python 3.14.
Pylint's inference engine (
astroid) is now much more precise,understanding implicit booleanness and ternary expressions. (Thanks @zenlyj!)
Consider this example:
The required
astroidversion is now 4.0.0. See the astroid changelog for additional fixes, features, and performance improvements applicable to pylint.invalid-nameat the module level was patchy. Now,module-level constants that are reassigned are treated as variables and checked
against
--variable-rgxrather than--const-rgx. Module-level lists,sets, and objects can pass against either regex.
Here,
LIMITis reassigned, so pylint only uses--variable-rgx:If this is undesired, refactor using exclusive assignment so that it is
evident that this assignment happens only once:
Lists, sets, and objects still pass against either
const-rgxorvariable-rgxeven if reassigned, but are no longer completely skipped:
Remember to adjust the regexes and allow lists to your liking.
Breaking Changes
invalid-namenow distinguishes module-level constants that are assigned only oncefrom those that are reassigned and now applies
--variable-rgxto the latter. Valuesother than literals (lists, sets, objects) can pass against either the constant or
variable regexes (e.g. "LOGGER" or "logger" but not "LoGgEr").
Remember that
--good-namesor--good-names-rgxscan be provided to explicitlyallow good names.
Closes #3585
The unused
pylintrcargument toPyLinter.__init__()is deprecatedand will be removed.
Refs #6052
Commented out code blocks such as
# bar() # TODO: remove dead codewill no longer emitfixme.Refs #9255
pyreverseRunwas changed to no longer callsys.exit()in its__init__.You should now call
Run(args).run()which will return the exit code instead.Having a class that always raised a
SystemExitexception was considered a bug.Normal usage of pyreverse through the CLI will not be affected by this change.
Refs #9689
The
suggestion-modeoption was removed, as pylint now always emits user-friendly hints insteadof false-positive error messages. You should remove it from your conf if it's defined.
Refs #9962
The
async.pychecker module has been renamed toasync_checker.pysinceasyncis a Python keywordand cannot be imported directly. This allows for better testing and extensibility of the async checker functionality.
Refs #10071
The message-id of
continue-in-finallywas changed fromE0116toW0136. The warning isnow emitted for every Python version since it will raise a syntax warning in Python 3.14.
See PEP 765 - Disallow return/break/continue that exit a finally block.
Refs #10480
Removed support for
nmp.NaNalias fornumpy.NaNbeing recognized in ':ref:nan-comparison'. Usenpornumpyinstead.Refs #10583
Version requirement for
isorthas been bumped to >=5.0.0.The internal compatibility for older
isortversions exposed viapylint.utils.IsortDriverhasbeen removed.
Refs #10637
New Features
comparison-of-constantsnow uses the unicode from the ast instead of reformatting fromthe node's values preventing some bad formatting due to
utf-8limitation. The message now uses"instead of'to better work with what the python ast returns.Refs #8736
Enhanced pyreverse to properly distinguish between UML relationship types (association, aggregation, composition) based on object ownership semantics. Type annotations without assignment are now treated as associations, parameter assignments as aggregations, and object instantiation as compositions.
Closes #9045
Closes #9267
The
fixmecheck can now search through docstrings as well as comments, by usingcheck-fixme-in-docstring = truein the[tool.pylint.miscellaneous]section.Closes #9255
The
use-implicit-booleaness-not-xchecks now distinguish between comparisonsused in boolean contexts and those that are not, enabling them to provide more accurate refactoring suggestions.
Closes #9353
The verbose option now outputs the filenames of the files that have been checked.
Previously, it only included the number of checked and skipped files.
Closes #9357
colorized reporter now colorizes messages/categories that have been configured as
fail-onin red inverse.This makes it easier to quickly find the errors that are causing pylint CI job failures.
Closes #9898
Enhanced support for @property decorator in pyreverse to correctly display return types of annotated properties when generating class diagrams.
Closes #10057
Add --max-depth option to pyreverse to control diagram complexity. A depth of 0 shows only top-level packages, 1 shows one level of subpackages, etc.
This helps manage visualization of large codebases by limiting the depth of displayed packages and classes.
Refs #10077
Handle deferred evaluation of annotations in Python 3.14.
Closes #10149
Enhanced pyreverse to properly detect aggregations for comprehensions (list, dict, set, generator).
Closes #10236
pyreverse: add support for colorized output when using output formatmmd(MermaidJS) andhtml.Closes #10242
pypy 3.11 is now officially supported.
Refs #10287
Add support for Python 3.14.
Refs #10467
Add naming styles for
ParamSpecandTypeVarTuplethat align with theTypeVarstyle.Refs #10541
New Checks
Add
match-statementschecker and the following message:bare-name-capture-pattern.This will emit an error message when a name capture pattern is used in a match statement which would make the remaining patterns unreachable.
This code is a SyntaxError at runtime.
Closes #7128
Add new check
async-context-manager-with-regular-withto detect async context managers used with regularwithstatements instead ofasync with.Refs #10408
Add
break-in-finallywarning. Usingbreakinside thefinallyclausewill raise a syntax warning in Python 3.14.
See
PEP 765 - Disallow return/break/continue that exit a finally block <https://peps.python.org/pep-0765/>_.Refs #10480
Add new checks for invalid uses of class patterns in :keyword:
match.invalid-match-args-definitionis emitted if :py:data:object.__match_args__isn't a tuple of strings.too-many-positional-sub-patternsif there are more positional sub-patterns than specified in :py:data:object.__match_args__.multiple-class-sub-patternsif there are multiple sub-patterns for the same attribute.Refs #10559
Add additional checks for suboptimal uses of class patterns in :keyword:
match.match-class-bind-selfis emitted if a name is bound toselfinstead ofusing an
aspattern.match-class-positional-attributesis emitted if a class pattern has positionalattributes when keywords could be used.
Refs #10587
Add a
consider-math-not-floatmessage.float("nan")andfloat("inf")are slowerthan their counterpart
math.infandmath.nanby a factor of 4 (notwithstandingthe initial import of math) and they are also not well typed when using mypy.
This check also catches typos in float calls as a side effect.
The :ref:
pylint.extensions.code_styleneed to be activated for this check to work.Refs #10621
False Positives Fixed
Fix a false positive for
used-before-assignmentwhen a variable defined underan
ifand via a named expression (walrus operator) is used later when guardedunder the same
iftest.Closes #10061
Fix :ref:
no-name-in-modulefor members ofconcurrent.futureswith Python 3.14.Closes #10632
False Negatives Fixed
Fix false negative for
used-before-assignmentwhen aTYPE_CHECKINGimport is used as a type annotation prior to erroneous usage.Refs #8893
Match cases are now counted as edges in the McCabe graph and will increase the complexity accordingly.
Refs #9667
Check module-level constants with type annotations for
invalid-name.Remember to adjust
const-naming-styleorconst-rgxto your liking.Closes #9770
Fix false negative where function-redefined (E0102) was not reported for functions with a leading underscore.
Closes #9894
We now raise a
logging-too-few-argsfor format string with nointerpolation arguments at all (i.e. for something like
logging.debug("Awaiting process %s")or
logging.debug("Awaiting process {pid}")). Previously we did not raise for such case.Closes #9999
Fix false negative for
used-before-assignmentwhen a function is defined inside aTYPE_CHECKINGguard block and used later.Closes #10028
Fix a false negative for
possibly-used-before-assignmentwhen a variable is conditionally definedand later assigned to a type-annotated variable.
Closes #10421
Fix false negative for
deprecated-modulewhen a__import__method is used instead ofimportsentence.Refs #10453
Count match cases for
too-many-branchescheck.Refs #10542
Fix false-negative where :ref:
unused-importwas not reported for names referenced in a precedingglobalstatement.Refs #10633
Other Bug Fixes
When displaying unicode with surrogates (or other potential
UnicodeEncodeError),pylint will now display a '?' character (using
encode(encoding="utf-8", errors="replace"))instead of crashing. The functional tests classes are also updated to handle this case.
Closes #8736
Fixed unidiomatic-typecheck only checking left-hand side.
Closes #10217
Fix a crash caused by malformed format strings when using
.formatwith keyword arguments.Closes #10282
Fix false positive
inconsistent-return-statementswhen usingquit()orexit()functions.Closes #10508
Fix a crash in :ref:
nested-min-maxwhen usingbuiltins.minorbuiltins.maxinstead of
minormaxdirectly.Closes #10626
Fixed a crash in :ref:
unnecessary-dict-index-lookupwhen the index of an enumerated listwas deleted inside a for loop.
Closes #10627
Other Changes
Remove support for launching pylint with Python 3.9.
Code that supports Python 3.9 can still be linted with the
--py-version=3.9setting.Refs #10405
Internal Changes
Modified test framework to allow for different test output for different Python versions.
Refs #10382
v3.3.9Compare Source
What's new in Pylint 3.3.9?
Release date: 2025-10-05
False Positives Fixed
Fix used-before-assignment for PEP 695 type aliases and parameters.
Closes #9815
No longer flag undeprecated functions in
importlib.resourcesas deprecated.Closes #10593
Fix false positive
inconsistent-return-statementswhen usingquit()orexit()functions.Closes #10508
Fix false positive
undefined-variable(E0602) for for-loop variable shadowing patterns likefor item in item:when the variable was previously defined.Closes #10562
Other Bug Fixes
Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using
minus the length of an iterable inside a dict comprehension when the len call was only
made in this dict comprehension, and not elsewhere. Also changed the approach,
to use inference in all cases but the simple ones, so we don't have to fix crashes
one by one for arbitrarily complex expressions in enumerate.
Closes #10510
v3.3.8Compare Source
What's new in Pylint 3.3.8?
Release date: 2025-08-09
This patch release includes an exceptional fix for a false negative issue. For details, see: #10482 (comment)
False Positives Fixed
Fix false positives for
possibly-used-before-assignmentwhen variables are exhaustivelyassigned within a
matchblock.Closes #9668
Fix false positive for
missing-raises-docandmissing-yield-docwhen the method length is less than docstring-min-length.Refs #10104
Fix a false positive for
unused-variablewhen multiple except handlers bind the same name under a try block.Closes #10426
False Negatives Fixed
Fix false-negative for
used-before-assignmentwithfrom __future__ import annotationsin function definitions.Refs #10482
Other Bug Fixes
Fix a bug in Pyreverse where aggregations and associations were included in diagrams regardless of the selected --filter-mode (such as PUB_ONLY, ALL, etc.).
Closes #10373
Fix double underscores erroneously rendering as bold in pyreverse's Mermaid output.
Closes #10402
sphinx-contrib/apidoc (sphinxcontrib-apidoc)
v0.6.0Compare Source
Configuration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), 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.
👻 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.