Repository navigation
Update all dependencies - #475
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #475 +/- ##
=======================================
Coverage 56.25% 56.25%
=======================================
Files 6 6
Lines 368 368
=======================================
Hits 207 207
Misses 161 161 🚀 New features to boost your workflow:
|
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
November 17, 2024 16:58
2dd772d to
f1671b3
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
November 26, 2024 00:49
f1671b3 to
05ec1fc
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
December 8, 2024 13:49
05ec1fc to
07817a2
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
December 16, 2024 15:40
07817a2 to
698b3a9
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
4 times, most recently
from
December 28, 2024 17:15
9315eca to
cd899e0
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
4 times, most recently
from
January 8, 2025 19:06
6b7e7c7 to
0880df1
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
February 3, 2025 18:07
0880df1 to
b63d921
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
February 13, 2025 19:18
a7cd5b3 to
f0dded0
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
3 times, most recently
from
March 23, 2025 17:50
1958420 to
9f8d87c
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 1, 2025 22:23
9f8d87c to
8f1dff5
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
April 12, 2025 17:52
8f1dff5 to
7b30514
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
May 23, 2025 12:58
a77f505 to
1e22f3f
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
May 25, 2025 14:16
1e22f3f to
6e85c8b
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
June 15, 2025 14:50
1c447ec to
fa62167
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
June 23, 2025 17:13
fa62167 to
7b87b15
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
3 times, most recently
from
September 29, 2025 23:30
43cb005 to
72176d4
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
5 times, most recently
from
October 21, 2025 01:09
a40e5bc to
b293114
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
4 times, most recently
from
November 12, 2025 04:08
59c6ca3 to
1282307
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
November 20, 2025 17:51
1282307 to
93743a1
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
December 10, 2025 19:01
93743a1 to
4b2d07d
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
December 20, 2025 20:52
4b2d07d to
0159ed6
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
from
December 30, 2025 17:51
0159ed6 to
20820dc
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
3 times, most recently
from
February 3, 2026 13:46
d7918f2 to
bfc2b8b
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
4 times, most recently
from
February 11, 2026 14:58
a690a33 to
0debaee
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
February 23, 2026 17:04
6486773 to
0c3b45c
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
March 8, 2026 13:10
9d70b29 to
709552c
Compare
renovate
Bot
force-pushed
the
renovate/all
branch
2 times, most recently
from
March 19, 2026 14:04
1c0aabd to
7ef9107
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
==2.16.0→==2.18.0==3.4.0→==3.5.2==7.3.1→==7.17.2==0.18.1→==0.23==1.4.1→==1.5.0==6.4.5→==6.5.2==2.0.0→==2.3.1==3.0.2→==3.0.4==24.1→==24.2==1.5.0→==1.7.0Release Notes
python-babel/babel (babel)
v2.18.0Compare Source
Happy 2026! This release is, coincidentally, also being made from FOSDEM.
We will aspire for a slightly less glacial release cadence in this year;
there are interesting features in the pipeline.
Features
11841194121311961246Other improvements
12281230122712291174118911861202123312401197pyproject.tomlby @tomasr8 in :gh:1187unittesttest cases to bare functions by @akx in :gh:1241v2.17.0Compare Source
Happy 2025! This release is being made from FOSDEM 2025, in Brussels, Belgium.
Thank you to all contributors, new and old,
and here's to another great year of internationalization and localization!
Features
parse_timetime formats by @tomasr8 in :gh:1141str.indexwithstr.findby @tomasr8 in :gh:1130/etc/localtimeby @akx in :gh:11651179locale=Noneby @akx in :gh:1164Catalog.__setitem__by @tomasr8 in :gh:1167112611351132read_mologic regardingcatalog.charsetby @tomasr8 in :gh:11481121Deprecation and compatibility
Locale.number_symbolswill now have first-level keys for each numbering system.Since the implicit default numbering system still is
"latn", what had previouslybeen e.g.
Locale.number_symbols['decimal']is nowLocale.number_symbols['latn']['decimal'].distutilsorsetuptools; if you had beenusing the Babel setuptools command extensions, you would need to explicitly depend on
setuptools–though given you're running
setup.pyyou probably already do.Features
10451046jawah/charset_normalizer (charset-normalizer)
v3.5.2Compare Source
Changed
<3.4for native builds. The bound remains<3.3forabi3builds to preserve compatibility with the Python 3.7 Limited API.Fixed
for uncommon CJK characters. (#796)
declarations. (#800)
v3.5.1Compare Source
Changed
Fixed
Only impacted large content input >1M bytes.
v3.5.0Compare Source
Added
Fixed
Changed
pure Python fallback. The previous engine (mypyc) started to hit rough limit around
the optimization of our noise/coherence detector while Cython allows us to
steer the engine toward the right generated optimized sources.
This change SHOULD not impact bundler (e.g. Pyinstaller) as the module are
immediately discoverable (i.e. not hidden import like mypyc did).
Moreover, a long wished distribution is the abi3 wheels, this will allow us
to no longer rush each year when a new Python interpreter is released.
We still distribute the interpreter specific wheels for faster performance.
Misc
v3.4.9Compare Source
Fixed
We've yanked 3.4.8 as a result of that bug.
v3.4.8Compare Source
Fixed
Changed
Removed
v3.4.7Compare Source
Changed
setuptoolsconstraint tosetuptools>=68,<82.1.Fixed
v3.4.6Compare Source
Changed
charset_normalizer.mdfor higher performance. Removedeligible(..)andfeed(...)in favor of
feed_info(...).UNICODE_RANGES_COMBINEDusing Unicode blocks v17.Fixed
--normalizewriting to wrong path when passing multiple files in. (#702)Misc
v3.4.5Compare Source
Changed
setuptoolsconstraint tosetuptools>=68,<=82.Fixed
Misc
query_yes_nofunction (inside CLI) to avoid using ambiguous licensed code.cd.pysubmodule into mypyc optional compilation to reduce further the performance impact.v3.4.4Compare Source
Changed
setuptoolsto a specific constraintsetuptools>=68,<=81.Removed
setuptools-scmas a build dependency.Misc
dev-requirements.txtand createdci-requirements.txtfor security purposes.multiple.intoto.jsonlin GitHub releases in addition to individual attestation file per wheel.v3.4.3Compare Source
Changed
CHARSET_NORMALIZER_USE_MYPYCisn't set to1. (#595) (#583)detectoutput legacy function. (#391)Added
Fixed
Misc
Each published wheel comes with its SBOM. We choose CycloneDX as the format.
v3.4.2Compare Source
Fixed
argparse.FileTypeby backporting the target class into the package. (#591)Changed
v3.4.1Compare Source
Changed
pyproject.tomlinstead ofsetup.cfgusing setuptools as the build backend.Added
Removed
build-requirements.txtas per usingpyproject.tomlnative build configuration.bin/integration.pyandbin/serve.pyin favor of downstream integration test (see noxfile).setup.cfgin favor ofpyproject.tomlmetadata configuration.utils.range_scanfunction.Fixed
utf_8instead of preferredutf-8. (#572)coveragepy/coveragepy (coverage)
v7.17.2Compare Source
Fix: two different scenarios failed with "attempt to write a readonly
database". These were regressions in 7.17.1. They are fixed, closing
issue 2356_:When using a version of SQLite older than 3.34.0, such as on RHEL 8 or
Ubuntu 20.04,
coverage combine(and pytest-cov, which combinesautomatically) always failed.
coverage combineandcoverage debug datafailed when a data fileexisted but had no coverage schema, for example an empty file left behind
by a worker that died. A file we can't read is now reported like any other
unusable data file, and is left in place.
.. _issue 2356: #2356
.. _changes_7-17-1:
v7.17.1Compare Source
Fix: a one-line class or function body immediately followed by another
statement (such as
class Foo: ...on its own line) was incorrectlyreported as a missing branch when using the sys.monitoring core. This is now
fixed, closing
issue 2167_ andissue 2337_.Fix: the HTML report only rewrites a file's page when the file or its data
has changed, but each page also links to the previous and next files. When
the set of reported files changed, unchanged pages kept their old links. For
example, with
skip_covered, a file that became 100% covered had its pagedeleted, but the pages next to it still linked to it. Now a page is also
rewritten when its neighbors change.
Fix:
--fail-undernow uses at least the decimal precision of thethreshold for both the comparison and failure message. With
precision=0,a total of 0.4 now passes
--fail-under=0.3and fails--fail-under=0.5with the message "total of 0.4 is less than fail-under=0.5". Previously, the
comparison rounded the total to zero and the message could claim "1 is less
than 0". Closes
issue 2295_.Fix: the HTML report escaped file names twice, so a name with
&,<,or quotes in it was shown with entities like
&. Now they are properlyescaped only once.
Fix:
--source=/measured no files. A file system root can't be a sourcedirectory, so now it is an error. Closes
issue 2291_.In an abundance of caution, prevent forged SQLite journal files from deleting
files they shouldn't.
.. _issue 2167: #2167
.. _issue 2291: #2291
.. _issue 2295: #2295
.. _issue 2337: #2337
.. _changes_7-17-0:
v7.17.0Compare Source
Dropped support for Python 3.10.
Binary wheels are now provided for iOS and Android. This allows the use of
the optimized C tracer on mobile platforms.
Fix: three or more levels of nested
withstatements could make awithline look like a branch with an exit that can never happen. Using the
sys.monitoring core, these phantom branches were reported as partial. Other
cores hid the problem but still counted the phantom branches in the total.
Closes
issue 1987_.Fix: a comment or string that merely mentioned
if True:orwhile True:could mark its line as a branch that is known to be partial,so a branch that never ran was reported as taken. These built-in patterns
now only match at the start of the statement. Closes
issue 2314_.Fix: region detection missed functions defined in unusual places, such as
elseandexceptclauses. This is now fixed.Fix: recent versions of the lcov tool complain if the same function name
appears more than once in a report. Python can have multiple same-named
functions in a few ways, for example, getters/setters or conditionally
defined functions. These are now disambiguated by adding a
@<line number>suffix to the function name. Fixes
issue 2335.Fix: The "Can't combine statement coverage data with branch data" error now
names the two data files it couldn't combine. The :ref:
error description <error_cant_combine>in the docs now lists common causes and how to find theprocess that wrote the file.
Fix: at coverage totals close to 0 or 100, the XML report could get incorrect
line-ratevalues like8.333e-05or1. This is now fixed, closingissue 2293_ andissue 2294_.Fix: a parallel data file saved more than once kept the hash of its first
save in its file name. Combining could then skip it as a duplicate of another
file that had the same data at that point, and delete it, losing the data
recorded after the first save. Each save now updates the hash. This had been
a problem since 7.13.1. Fixes
issue 2338_.Fixes for obscure but legal file names:
File names (and plugin names) can contain control characters, which are
legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
document non-well-formed, and in a terminal they act as escape sequences
(colors, title/clipboard sequences, cursor moves that forge output). Now
the XML report, the text and Markdown summary reports, and
coverage debug datareplace non-printable characters in names. Printable names areunchanged.
A file pattern (from
include,omit, or a[paths]alias)containing a newline sent the glob-to-regex translation into an infinite
loop, hanging the process. Newlines in patterns are now handled like any
other character.
Fixes in the implementation of the C tracer:
If a plugin's
dynamic_source_filenamemethod raised an exception, linesin that function could be recorded as belonging to a different file. Also
fixed some minor memory leaks in the C tracer.
The refcount of
Nonewas mismanaged during function calls, includingcomprehensions. This was unlikely to cause an actual problem, but is now
fixed. Thanks, Andrew Dalke.
The C tracer held borrowed references to dictionary values, which was
unsafe on free-threaded Python. Now it takes its own references.
An internal error while recording a new file could be reported as a
confusing
SystemErrorinstead of the actual exception.Performance: the text summary report (
coverage report) held on to everyfile's parsed source until it finished, so its memory use grew with the size
of the project: ten times or more what 7.14 used on large projects. Now it
keeps only what it needs to print. Fixes
issue 2277_.Performance: HTML reports should be about 5% faster to produce.
Kept the political banner in the README. Closes
issue 2344_... _issue 1987: #1987
.. _issue 2277: #2277
.. _issue 2293: #2293
.. _issue 2294: #2294
.. _issue 2314: #2314
.. _issue 2335: #2335
.. _issue 2338: #2338
.. _issue 2344: #2344
.. _changes_7-16-2:
v7.16.2Compare Source
Fix: on Python 3.14 and later, a
forloop completing immediately before afunction return could mistakenly report an uncovered branch. This is now
fixed, closing
issue 2168_.Fix: on Python 3.14 and later, the
elseclause of atrywhose body isa
withstatement could incorrectly be reported as covered when thewithraised. This is now fixed, closingissue 2289_.Fix: with
dynamic_context = test_function, test methods written as@staticmethodor@classmethodwere 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:
v7.16.1Compare Source
Fix: when the body of an irrefutable
case(likecase _:) is entirelyexcluded, the
caseline is now excluded too, just as an excludedelse:body removes theelse:line. Previously thecaseline wasleft behind and reported as missing. Closes
issue 1563_ withpull 2269_.Fix: using :meth:
.CoverageData.updatetwice on an in-memory database wouldfail, as described in
issue 2279_. This is now fixed.Fix: the Total row in the footer of the HTML report's index page was
recomputed in JavaScript with rounding that could disagree with the total
the server rendered in the heading, including showing
100%when coveragewas not complete. The footer now clamps values the way the rest of the
report does, and when nothing is filtered out it is shown exactly as the
server rendered it, so the two can't disagree. That also keeps rows the
report omits (
--skip-covereddrops fully covered files) in the total.Fixes
issue 2256_... _issue 1563: #1563
.. _issue 2256: #2256
.. _pull 2269: #2269
.. _issue 2279: #2279
.. _changes_7-16-0:
v7.16.0Compare Source
When combining files, now path separator slashes will automatically be
converted to the local file system style. This makes it less necessary to
define
[paths]configuration to combine data across operating systems.Fixes
issue 2266_.The :meth:
.Coverage.switch_contextmethod now returns the previous context.Fix: previously, a
[paths]pattern would be replaced everywhere in a filepath when it was only meant to be replaced once, in the leading portion of
the path. This is now fixed, in
pull 2268_.Fixes to validation of options and configuration settings:
Negative precision settings now always cause useful error messages (
pull 2261_).An invalid regex in the
--contextsoption (or the[report] contextssetting) reported a confusing "Couldn't use data file ...:user-defined function raised exception" error. Now it raises a proper
configuration error naming the bad regex, like other regex settings do
(
pull 2262_).Non-string values in TOML configuration settings now produce a helpful
error message instead of a traceback. This affects list settings whose
elements aren't strings (like
omit,exclude_lines, or a[paths]entry), file settings like
data_file, and any wrong-typed value in the[paths]section (pull 2263_).coverage runrefuses run-affecting command-line options like--branchalongside--concurrency=multiprocessing, since they can'treach the subprocesses. The check only recognized
multiprocessingasthe entire option value, so
--concurrency=multiprocessing,threadslipped through and failed later with "Can't combine statement coverage
data with branch data". Each named concurrency library is now properly
considered (
pull 2270_).Fix:
coverage annotate -d DIRraised anAssertionErrorif anymeasured file had an extension other than
.py, such as a.pywfile onWindows. The original extension is now restored on the annotated copy (
pull 2265_)... _pull 2261: #2261
.. _pull 2262: #2262
.. _pull 2263: #2263
.. _pull 2265: #2265
.. _issue 2266: #2266
.. _pull 2268: #2268
.. _pull 2270: #2270
.. _changes_7-15-4:
v7.15.4Compare Source
Fix: in the HTML report, a source file name containing a double quote (legal
on POSIX) wasn't escaped where it's dropped into the
hrefof the indexand prev/next links, so it could close the attribute early and inject markup.
Page URLs are now escaped. Thanks,
Rajath Mohare <pull 2227_>_.Fix: the LCOV report wrote file names and other fields into its
line-oriented records without neutralizing control characters. A measured
file whose name contained a newline (legal on POSIX) could forge extra
records, inflating the coverage seen by tools that read the report. Control
characters in a field are now replaced. Thanks,
Rajath Mohare <pull 2226_>_.Wheels are now provided for Python 3.15.
.. _pull 2226: #2226
.. _pull 2227: #2227
.. _changes_7-15-3:
v7.15.3Compare Source
Fix: the sysmon core is incompatible with dynamic contexts. Previously, the
combination would be prevented when read from the coverage.py configuration.
But using the context API as pytest-cov does, contexts would be silently
dropped. Now a warning is issued, thanks to
Jisang Han <pull 2234_>.Closes
issue 2200.A performance improvement in the low-level line number bookkeeping when
combining data files, thanks to
Kevin Turcios <pull 2239_>_.Performance improvement in HTML reporting by reducing the number of times
files have to be parsed, thanks to
Kevin Turcios <pull 2240_>_... _issue 2200: #2200
.. _pull 2234: #2234
.. _pull 2239: #2239
.. _pull 2240: #2240
.. _changes_7-15-2:
v7.15.2Compare Source
increased memory use during reporting for large projects. Now we use a
different approach that is both faster and slimmer than 7.15.0. Fixes
issue 2229_... _issue 2229: #2229
.. _changes_7-15-1:
v7.15.1Compare Source
Fix: in the HTML report with
show_contextsenabled, a context labelcontaining
</script>(for example a parametrized pytest node id) couldclose the inline
<script>element in a file page early, injecting markup.Context labels are now fully escaped. Thanks,
Rajath Mohare <pull 2224_>_.A number of performance improvements thanks to Paul Kehrer, in pull requests
2213 <pull 2213_>,2214 <pull 2214_>,2215 <pull 2215_>,2216 <pull 2216_>,2218 <pull 2218_>,2220 <pull 2220_>, and2221 <pull 2221_>_... _pull 2213: #2213
.. _pull 2214: #2214
.. _pull 2215: #2215
.. _pull 2216: #2216
.. _pull 2218: #2218
.. _pull 2220: #2220
.. _pull 2221: #2221
.. _pull 2224: #2224
.. _changes_7-15-0:
v7.15.0Compare Source
Since 7.14.0, reporting commands implicitly combine parallel data files. Now
those commands have a new option
--keep-combinedto retain the data filesafter combining them instead of the default, which is to delete them.
Finishes
issue 2198_.Fix: the LCOV report would incorrectly count excluded functions as uncovered,
as described in
issue 2205. This is now fixed thanks toMartin Kuntz Jacobsen <pull 2206_>.When running your program, coverage now correctly sets
yourmodule.__spec__.loaderasstrongly recommended <--loader--_>,avoiding the deprecation warning described in
issue 2208. Thanks,A5rocks <pull 2209_>_.Fix: with Python 3.10, running with the
-I(isolated mode) option didn'tcorrectly omit the current directory from the module search path, as
described in
issue 2103. That is now fixed thanks toIlia Sorokin <pull 2211_>... --loader--: https://docs.python.org/3/reference/datamodel.html#module.__loader_
.. _issue 2103: #2103
.. _issue 2198: #2198
.. _issue 2205: #2205
.. _pull 2206: #2206
.. _issue 2208: #2208
.. _pull 2209: #2209
.. _pull 2211: #2211
.. _changes_7-14-3:
v7.14.3Compare Source
Fix: the default
...exclusion rule now also matches function bodieswhose closing return-type bracket is on its own line (for example, after a
long
-> dict[ ... ]annotation that a formatter has split over multiplelines). Closes
issue 2185, thanksMengjia Shang <pull 2196_>.Fix: On 3.13t, we incorrectly issued
Couldn't import C tracererrors.We can't import the C tracer because in 7.14.2 we stopped shipping compiled
wheels for 3.13t. Thanks,
Hugo van Kemenade <pull 2203_>_... _issue 2185: #2185
.. _pull 2196: #2196
.. _pull 2203: #2203
.. _changes_7-14-2:
v7.14.2Compare Source
Fix: some messages were being written to stdout, making
coverage json -o -useless for capturing JSON output. Now messages are written to stderr,fixing
issue 2197_.Fix:
CoverageDatakept one SQLite connection per thread that recordedcoverage, but never closed them when those threads terminated. On long runs
with many short-lived threads this leaked one file descriptor per dead
thread, eventually failing with
OSError: [Errno 24] Too many open files.Connections belonging to terminated threads are now closed and dropped.
Fixes
issue 2192. Thanks,Matthew Lloyd <pull 2193_>.Fix: when using sys.monitoring, we were assuming we could use the
COVERAGE_IDtool id. But other tools might also assume they could usethat id. Pre-allocated ids don't really make sense, so now we search for a
usable one instead. Fixes
issue 2187_.Following
the advice of cibuildwheel <no-13t_>_, we no longer distributewheels for Python 3.13 free-threaded.
.. _issue 2187: #2187
.. _issue 2192: #2192
.. _pull 2193: #2193
.. _issue 2197: #2197
.. _no-13t: https://py-free-threading.github.io/ci/#building-free-threaded-wheels-with-cibuildwheel
.. _changes_7-14-1:
v7.14.1Compare Source
readable by adding a small amount of space around slashes. Those spaces
interfered with searching the page for file paths
Configuration
📅 Schedule: (in timezone Europe/London)
🚦 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.