chore(deps): update python package updates #30
+848
−693
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:
==25.3.0
->==25.4.0
==6.0.0
->==6.2.0
==2025.4.26
->==2025.10.5
==3.4.2
->==3.4.3
==7.8.0
->==7.10.7
==0.3.9
->==0.4.0
==3.18.0
->==3.20.0
==4.23.0
->==4.25.1
==2025.4.1
->==2025.9.1
==0.2.31
->==0.2.38
==4.3.7
->==4.5.0
==1.5.0
->==1.6.0
==1.9.0
->==1.10.0
==8.3.5
->==8.4.2
==6.1.1
->==6.3.0
==6.0.2
->==6.0.3
==2.32.4
->==2.32.5
==0.25.7
->==0.25.8
==0.24.0
->==0.27.1
==0.18.10
->==0.18.15
==0.2.12
->==0.2.14
==4.25.0
->==4.31.0
==4.13.2
->==4.15.0
==20.30.0
->==20.34.0
Release Notes
python-attrs/attrs (attrs)
v25.4.0
Compare Source
Backwards-incompatible Changes
Class-level
kw_only=True
behavior is now consistent withdataclasses
.Previously, a class that sets
kw_only=True
makes all attributes keyword-only, including those from base classes.If an attribute sets
kw_only=False
, that setting is ignored, and it is still made keyword-only.Now, only the attributes defined in that class that doesn't explicitly set
kw_only=False
are made keyword-only.This shouldn't be a problem for most users, unless you have a pattern like this:
Here, we have a
kw_only=True
attrs class (Base
) with an attribute that setskw_only=False
and has a default (Base.b
), and then create a subclass (Subclass
) with required arguments (Subclass.c
).Previously this would work, since it would make
Base.b
keyword-only, but now this fails sinceBase.b
is positional, and we have a required positional argument (Subclass.c
) following another argument with defaults.#1457
Changes
Values passed to the
__init__()
method ofattrs
classes are now correctly passed to__attrs_pre_init__()
instead of their default values (in cases where kw_only was not specified).#1427
Added support for Python 3.14 and PEP 749.
#1446,
#1451
attrs.validators.deep_mapping()
now allows to leave out either key_validator xor value_validator.#1448
attrs.validators.deep_iterator()
andattrs.validators.deep_mapping()
now accept lists and tuples for all validators and wrap them into aattrs.validators.and_()
.#1449
Added a new experimental way to inspect classes:
attrs.inspect(cls)
returns the effective class-wide parameters that were used by attrs to construct the class.The returned class is the same data structure that attrs uses internally to decide how to construct the final class.
#1454
Fixed annotations for
attrs.field(converter=...)
.Previously, a
tuple
of converters was only accepted if it had exactly one element.#1461
The performance of
attrs.asdict()
has been improved by 45–260%.#1463
The performance of
attrs.astuple()
has been improved by 49–270%.#1469
The type annotation for
attrs.validators.or_()
now allows for different types of validators.This was only an issue on Pyright.
#1474
tkem/cachetools (cachetools)
v6.2.0
Compare Source
===================
Improve general
RRCache
performance by storing cache keys in anadditional sequence container. Note that this will increase memory
consumption.
Add more unit tests.
v6.1.0
Compare Source
===================
Improve
LFUCache
insertion performance by switching to animplementation based on the
cacheing <https://pypi.org/project/cacheing/>
_ library.Update CI environment.
certifi/python-certifi (certifi)
v2025.10.5
Compare Source
v2025.8.3
Compare Source
v2025.7.14
Compare Source
v2025.7.9
Compare Source
v2025.6.15
Compare Source
jawah/charset_normalizer (charset-normalizer)
v3.4.3
Compare Source
Changed
CHARSET_NORMALIZER_USE_MYPYC
isn't set to1
. (#595) (#583)detect
output legacy function. (#391)Added
Fixed
Misc
Each published wheel comes with its SBOM. We choose CycloneDX as the format.
nedbat/coveragepy (coverage)
v7.10.7
Compare 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.6
Compare Source
Fix:
source
directories 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.5
Compare 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.4
Compare Source
Added
patch = fork
for times when the built-in forking support isinsufficient.
Fix:
patch = execv
also inherits the entire coverage configuration now... _changes_7-10-3:
v7.10.3
Compare 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
ModuleNotFound
error 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 run
command 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=patch
to 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:
v7.10.2
Compare Source
actually executed. This is now fixed, closing
issue 1999
_. Python 3.9still shows the problem.
.. _issue 1999: #1999
.. _changes_7-10-1:
v7.10.1
Compare Source
Fix: the exclusion for
if TYPE_CHECKING:
was wrong: it marked the branchas partial, but it should have been a line exclusion so the entire clause
would be excluded. Improves
issue 831
_.Fix: changed where .pth files are written for
patch = subprocess
, closingissue 2006
_... _issue 2006: #2006
.. _changes_7-10-0:
v7.10.0
Compare Source
A new configuration option: ":ref:
config_run_patch
" specifies named patchesto work around some limitations in coverage measurement. These patches are
available:
patch = _exit
lets coverage save its data even when :func:os._exit() <python:os._exit>
is used to abruptly end the process. This closeslong-standing
issue 310
_ as well as its duplicates:issue 312
,issue 1673
,issue 1845
, andissue 1941
.patch = subprocess
measures coverage in Python subprocesses createdwith :mod:
subprocess
, :func:os.system
, or one of the :func:execv <python:os.execl>
or :func:spawnv <python:os.spawnl>
family offunctions. Closes old
issue 367
, its duplicateissue 378
and oldissue 689
_.patch = execv
adjusts the :func:execv <python:os.execl>
family offunctions to save coverage data before ending the current program and
starting the next. Not available on Windows. Closes
issue 43
_ after 15years!
The HTML report now dimly colors subsequent lines in multi-line statements.
They used to have no color. This gives a better indication of the amount of
code missing in the report. Closes
issue 1308
_.Two new exclusion patterns are part of the defaults:
...
is automaticallyexcluded as a line and
if TYPE_CHECKING:
is excluded as a branch. Closesissue 831
_.A new command-line option:
--save-signal=USR1
specifies a signal thatcoverage.py will listen for. When the signal is sent, the coverage data will
be saved. This makes it possible to save data from within long-running
processes. Thanks,
Arkady Gilinsky <pull 1998_>
_.A new configuration option: ":ref:
config_report_partial_also
" is a list ofregexes to add as pragmas for partial branches. This parallels the
":ref:
config_report_exclude_also
" setting for adding line exclusionpatterns.
A few file path configuration settings didn't allow for tilde expansion:
:ref:
config_json_output
, :ref:config_lcov_output
and:ref:
config_run_debug_file
. This is now fixed.Wheels are included for 3.14 now that 3.14 rc1 is available.
We no longer ship a PyPy-specific wheel. PyPy will install the pure-Python
wheel. Closes
issue 2001
_.In the very unusual situation of not having a current frame, coverage no
longer crashes when using the sysmon core, fixing
issue 2005
_... _issue 43: #43
.. _issue 310: #310
.. _issue 312: #312
.. _issue 367: #367
.. _issue 378: #378
.. _issue 689: #689
.. _issue 831: #831
.. _issue 1308: #1308
.. _issue 1673: #1673
.. _issue 1845: #1845
.. _issue 1941: #1941
.. _pull 1998: #1998
.. _issue 2001: #2001
.. _issue 2005: #2005
.. _changes_7-9-2:
v7.9.2
Compare Source
Fix: complex conditionals within a line might cause a KeyError when using
sys.monitoring, as reported in
issue 1991
_. This is now fixed.Fix: we can now measure coverage for code in Python archive (.par) files.
Thanks,
Itamer Oren <pull 1984_>
_... _pull 1984: #1984
.. _issue 1991: #1991
.. _changes_7-9-1:
v7.9.1
Compare Source
The "no-ctracer" warning is not issued for Python pre-release versions.
Coverage doesn't ship compiled wheels for those versions, so this was far too
noisy.
On Python 3.14+, the "sysmon" core is now the default if it's supported for
your configuration. Plugins and dynamic contexts are still not supported
with it.
.. _changes_7-9-0:
v7.9.0
Compare Source
Added a
[run] core
configuration setting to specify the measurement core,which was previously only available through the COVERAGE_CORE environment
variable. Finishes
issue 1746
_.Fixed incorrect rendering of f-strings with doubled braces, closing
issue 1980
_.If the C tracer core can't be imported, a warning ("no-ctracer") is issued
with the reason.
The C tracer core extension module now conforms to
PEP 489
, closingissue 1977
. Thanks,Adam Turner <pull 1978_>
_.Fixed a "ValueError: min() arg is an empty sequence" error caused by strange
empty modules, found by
oss-fuzz
_... _issue 1746: #1746
.. _issue 1977: #1977
.. _pull 1978: #1978
.. _issue 1980: #1980
.. _PEP 489: https://peps.python.org/pep-0489
.. _oss-fuzz: https://google.github.io/oss-fuzz/
.. _changes_7-8-2:
v7.8.2
Compare Source
Thanks,
Finn Womack <pull 1972_>
_... _issue 1971: #1971
.. _pull 1972: #1972
.. _changes_7-8-1:
v7.8.1
Compare Source
A number of EncodingWarnings were fixed that could appear if you've enabled
PYTHONWARNDEFAULTENCODING, fixing
issue 1966
. Thanks,Henry Schreiner <pull 1967_>
.Fixed a race condition when using sys.monitoring with free-threading Python,
closing
issue 1970
_... _issue 1966: #1966
.. _pull 1967: #1967
.. _issue 1970: #1970
.. _changes_7-8-0:
pypa/distlib (distlib)
v0.4.0
Compare Source
tox-dev/py-filelock (filelock)
v3.20.0
Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/filelock@3.19.1...3.20.0
v3.19.1
Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/filelock@3.19.0...3.19.1
python-jsonschema/jsonschema (jsonschema)
v4.25.1
Compare Source
=======
Validator
protocol's type annotations (#1396).v4.25.0
Compare Source
=======
iri
andiri-reference
formats to theformat-nongpl
extra via the MIT-licensedrfc3987-syntax
.They were alread supported by the
format
extra. (#1388).v4.24.1
Compare Source
=======
ValidationError.json_path
(#139).v4.24.0
Compare Source
=======
unevaluatedProperties
in the presence ofadditionalProperties
(#1351).python-jsonschema/jsonschema-specifications (jsonschema-specifications)
v2025.9.1
Compare Source
What's Changed
New Contributors
Full Changelog: python-jsonschema/jsonschema-specifications@v2025.4.1...v2025.9.1
oras-project/oras-py (oras)
v0.2.37
: Oras Python v0.2.37Compare Source
What's Changed
Full Changelog: oras-project/oras-py@0.2.36...0.2.37
v0.2.36
: Oras Python v0.2.36Compare Source
What's Changed
Full Changelog: oras-project/oras-py@0.2.35...0.2.36
v0.2.35
: Oras Python v0.2.35Compare Source
What's Changed
Full Changelog: oras-project/oras-py@0.2.34...0.2.35
v0.2.34
: Oras Python v0.2.34Compare Source
What's Changed
New Contributors
Full Changelog: oras-project/oras-py@0.2.33...0.2.34
v0.2.33
: Oras Python v0.2.33Compare Source
What's Changed
New Contributors
Full Changelog: oras-project/oras-py@0.2.31...0.2.33
tox-dev/platformdirs (platformdirs)
v4.5.0
Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/platformdirs@4.4.0...4.5.0
v4.4.0
Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/platformdirs@4.3.8...4.4.0
v4.3.8
Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/platformdirs@4.3.7...4.3.8
tox-dev/pyproject-api (pyproject-api)
v1.10.0
Compare Source
What's Changed
Full Changelog: tox-dev/pyproject-api@1.9.1...1.10.0
v1.9.1
Compare Source
What's Changed
Full Changelog: tox-dev/pyproject-api@1.9.0...1.9.1
pytest-dev/pytest (pytest)
v8.4.2
Compare Source
v8.4.1
Compare Source
pytest 8.4.1 (2025-06-17)
Bug fixes
#13461: Corrected
_pytest.terminal.TerminalReporter.isatty
to supportbeing called as a method. Before it was just a boolean which could
break correct code when using
-o log_cli=true
).#13477: Reintroduced
pytest.PytestReturnNotNoneWarning
{.interpreted-text role="class"} which was removed by accident in pytest [8.4]{.title-ref}.This warning is raised when a test functions returns a value other than
None
, which is often a mistake made by beginners.See
return-not-none
{.interpreted-text role="ref"} for more information.#13497: Fixed compatibility with
Twisted 25+
.Improved documentation
faulthandler
not working on Windows.v8.4.0
Compare Source
pytest 8.4.0 (2025-06-02)
Removals and backward incompatible breaking changes
#11372: Async tests will now fail, instead of warning+skipping, if you don't have any suitable plugin installed.
#12346: Tests will now fail, instead of raising a warning, if they return any value other than None.
#12874: We dropped support for Python 3.8 following its end of life (2024-10-07).
#12960: Test functions containing a yield now cause an explicit error. They have not been run since pytest 4.0, and were previously marked as an expected failure and deprecation warning.
See
the docs <yield tests deprecated>
{.interpreted-text role="ref"} for more information.Deprecations (removal in next major release)
autouse=True
. For guidance on how to work around this warning seesync-test-async-fixture
{.interpreted-text role="ref"}.New features
#11538: Added
pytest.RaisesGroup
{.interpreted-text role="class"} as an equivalent topytest.raises
{.interpreted-text role="func"} for expectingExceptionGroup
{.interpreted-text role="exc"}. Also addspytest.RaisesExc
{.interpreted-text role="class"} which is now the logic behindpytest.raises
{.interpreted-text role="func"} and used as parameter topytest.RaisesGroup
{.interpreted-text role="class"}.RaisesGroup
includes the ability to specify multiple different expected exceptions, the structure of nested exception groups, and flags for emulatingexcept* <except_star>
{.interpreted-text role="ref"}. Seeassert-matching-exception-groups
{.interpreted-text role="ref"} and docstrings for more information.#12081: Added
capteesys
{.interpreted-text role="fixture"} to capture AND pass output to next handler set by--capture=
.#12504:
pytest.mark.xfail
{.interpreted-text role="func"} now acceptspytest.RaisesGroup
{.interpreted-text role="class"} for theraises
parameter when you expect an exception group. You can also pass apytest.RaisesExc
{.interpreted-text role="class"} if you e.g. want to make use of thecheck
parameter.#12713: New [--force-short-summary]{.title-ref} option to force condensed summary output regardless of verbosity level.
This lets users still see condensed summary output of failures for quick reference in log files from job outputs, being especially useful if non-condensed output is very verbose.
#12749: pytest traditionally collects classes/functions in the test module namespace even if they are imported from another file.
For example:
contents of src/domain.py
contents of tests/test_testament.py
#12765: Thresholds to trigger snippet truncation can now be set with
truncation_limit_lines
{.interpreted-text role="confval"} andtruncation_limit_chars
{.interpreted-text role="confval"}.See
truncation-params
{.interpreted-text role="ref"} for more information.#13125:
console_output_style
{.interpreted-text role="confval"} now supportstimes
to show execution time of each test.#13192:
pytest.raises
{.interpreted-text role="func"} will now raise a warning when passing an empty string tomatch
, as this will match against any value. Usematch="^$"
if you want to check that an exception has no message.#13192:
pytest.raises
{.interpreted-text role="func"} will now print a helpful string diff if matching fails and the match parameter has^
and$
and is otherwise escaped.#13192: You can now pass
with pytest.raises(check=fn): <pytest.raises>
{.interpreted-text role="func"}, wherefn
is a function which takes a raised exception and returns a boolean. Theraises
fails if no exception was raised (as usual), passes if an exception is raised andfn
returnsTrue
(as well asmatch
and the type matching, if specified, which are checked before), and propagates the exception iffn
returnsFalse
(which likely also fails the test).#13228:
hidden-param
{.interpreted-text role="ref"} can now be used inid
ofpytest.param
{.interpreted-text role="func"} or inids
ofMetafunc.parametrize <pytest.Metafunc.parametrize>
{.interpreted-text role="py:func"}.It hides the parameter set from the test name.
#13253: New flag:
--disable-plugin-autoload <disable_plugin_autoload>
{.interpreted-text role="ref"} which works as an alternative toPYTEST_DISABLE_PLUGIN_AUTOLOAD
{.interpreted-text role="envvar"} when setting environment variables is inconvenient; and allows setting it in config files withaddopts
{.interpreted-text role="confval"}.Improvements in existing functionality
#10224: pytest's
short
andlong
traceback styles (how-to-modifying-python-tb-printing
{.interpreted-text role="ref"})now have partial
657
{.interpreted-text role="pep"} support and will show specific code segments in thetraceback.
-- by
ammaraskar
{.interpreted-text role="user"}#11118: Now
pythonpath
{.interpreted-tConfiguration
📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, on day 1 of the month ( * 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.