chore(deps): Update python-dependencies - #3356
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
Contributor
Author
Branch automerge failureThis PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead.
|
renovate
Bot
force-pushed
the
renovate/python-dependencies
branch
from
September 2, 2026 22:51
020e048 to
3253945
Compare
renovate
Bot
force-pushed
the
renovate/python-dependencies
branch
15 times, most recently
from
September 9, 2026 22:26
bd730c6 to
e17289f
Compare
Contributor
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
renovate
Bot
force-pushed
the
renovate/python-dependencies
branch
10 times, most recently
from
September 11, 2026 08:36
6419cfd to
d28557d
Compare
renovate
Bot
force-pushed
the
renovate/python-dependencies
branch
12 times, most recently
from
September 15, 2026 21:41
42930f1 to
d45171a
Compare
renovate
Bot
force-pushed
the
renovate/python-dependencies
branch
from
September 16, 2026 01:44
d45171a to
d7e7e49
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.
This PR contains the following updates:
==2.13.0→==2.14.0==1.19.1→==1.20.0==4.14.2→==4.15.1==1.3.3→==1.4.0==4.64.0→==4.65.0==0.16.0→==0.17.0==3.11.1→==3.11.2==6.7.1→==6.8.0==2.5.2→==2.5.3==4.11.6→==4.11.8==0.5.2→==0.5.4==0.2.3→==0.2.4==2.0.81→==2.0.84==0.16.5→==0.16.7==2.68.1→==2.69.2==2.0.52→==2.0.54==6.5.8→==6.5.10==4.70.0→==4.70.1==2.7.0→==2.8.0==2.4.0→==2.4.1==1.24.5→==1.25.1Release Notes
jpadilla/pyjwt (PyJWT)
v2.14.0Compare Source
agronholm/anyio (anyio)
v4.15.1Compare Source
anyio.*submodules from the main package even when those submodules were not directly imported first (#1311 https://redirect.github.com/agronholm/anyio/issues/1311\>\\>](https://redirect.github.com/agronholm/anyio/issues/1311\\>))v4.15.0Compare Source
Added support for the newer keyword-only arguments on
anyio.Pathmethods to match the standard librarypathlib.Path:follow_symlinksonexists()(Python 3.12+)follow_symlinksonis_dir()(Python 3.13+)follow_symlinksonis_file()(Python 3.13+)follow_symlinksonowner()(Python 3.13+)follow_symlinksongroup()(Python 3.13+)newlineonread_text()(Python 3.13+)(#1286, #1293; PR by @jaideeppyne)
Added
amap,gather, andas_completedutility functions to simplify common patterns (#1173; PR by @Graeme22)Added
--anyio-modecommand-line option as an alternative to theanyio_modeini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g:pytest_asyncio). (#1242; PR by @EmmanuelNiyonshuti)Added the
anyio.Futuresynchronization primitive which behaves similar toasyncio.Future, allowing tasks to wait for a value (or exception) from another task (#1146; PR by @Vizonex)Added guidance for managing multiple memory object stream producers and consumers with cloned streams (#330; PR by @nightcityblade)
Added
StapledObjectStream.send_nowait()that delegates to the underlyingObjectSendStream, if it implements it (#1241; PR by @davidbrochart)Added the
move_on_at()andfail_at()functions to complementmove_on_after()andfail_after()Changed the default name for a task spawned with
TaskGroup.create_task(func())to match the default task name for the analogous task spawned withTaskGroup.start_soon(func)orTaskGroup.start(func)in more situations. Previously, the default name of aTaskGroup.create_tasktask never included the module name. (The default name for a task spawned withTaskGroup.start_soonorTaskGroup.starttypically includes the module name.) (#1234; PR by @gschaffner)Changed the
anyioandanyio.abcmodules to lazily (much like810) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from theif TYPE_CHECKING:block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (#1169)Fixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to
start_blocking_portal()andanyio.to_thread.run_sync()(#1224; PR by @EmmanuelNiyonshuti)Fixed
SpooledTemporaryFile.readinto()andreadinto1()reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (#1215; PR by @c-tonneslan)Added a
reasonparameter tofail_after(and the newfail_at) allowing for added exception context when raisingTimeoutError(#1227; PR by @Graeme22)Fixed the default
TaskHandle.namemissing part of the task name for tasks started withTaskGroup.starton Trio (#1231; PR by @gschaffner)Fixed
anyio.runleaking, or at least, delaying collection of loop and root_task due to the root task being cached in aRunVar. (#1203; PR by @tapetersen)Fixed
anyio.Path.with_stem()silently producing a wrong path (e.g.Path(".txt")) instead of raisingValueErrorwhen given an empty stem on a path with a non-empty suffix, unlikepathlib.PurePath.with_stem(#1200; PR by @Sanjays2402)Fixed
UNIXSocketStream.aclose()raisingasyncio.InvalidStateErrorwhen a concurrent receive or send operation had just been cancelled on the asyncio backend (#1267; PR by @alloutflo)Fixed the pytest plugin importing the deprecated
_pytest.python.CallSpec2alias, which triggersPytestRemovedIn10Warningonpytest>=9.2and crashes pytest at startup whenfilterwarnings = erroris configured (#1271; PR by @matthewfeickert)Fixed an asyncio worker thread race that could raise
RuntimeErrorwhen the event loop closed between checking its state and scheduling the worker result (#1265; PR by @hansu650)Fixed
CapacityLimiteron the asyncio backend over-granting tokens whentotal_tokenswas raised while the limiter was over-subscribed (#1223; PR by @zelinewang)Fixed asyncio task groups leaking unawaited coroutines when a custom task constructor fails; default task creation is unaffected (#1274; PR by @dsfaccini)
Fixed inconsistencies between Trio and asyncio when target
TaskGroupis cancelled before a task created with.start()callsTaskStatus.started()CancelledErroruntil the first checkpoint after thestarted()call.started()should be available on theTaskHandleand correctly passed back to the caller of start even if cancelled.TaskGroup.start()call to the calling task.(#1197; PR by @tapetersen)
Fixed
TemporaryDirectorynot cleaning up when the host task was cancelled while exiting the context manager, as the cleanup now runs in a shielded cancel scope (#1304; PR by @smurfix)contourpy/contourpy (contourpy)
v1.4.0: Version 1.4.0Compare Source
ContourPy 1.4.0 introduces a new readonly property
ContourGenerator.namefor the algorithm name, adds support for CPython 3.15, and is the first release to uploadpyodidewheels to PyPI. Support forriscv64andiOSarchitectures is added but considered experimental, wheels are available from the Scientific Python Nightly Wheels service but not PyPI.Enhancements:
ContourGenerator.namereadonly property (#566)Compatibility:
Code improvements:
ntotalargument in mpl2005build_cntr_list_v2(#550)Documentation improvements:
Build, testing and CI improvements:
macos-13tomacos-15-intelgithub runners (#507)macos-15-intelrunner (#513)bokeh3.9.0 (#533)zizmortopre-commit(#546)fonttools/fonttools (fonttools)
v4.65.0Compare Source
__iter__,itemsandvaluesmethods to theglyftable to make it more dict-like (#4156).<variable-font name="..."/>when deriving the output filename in thevarLibcommand line, so a designspace cannot write outside the output directory (#4168).scriptstatements. Rules following ascriptstatement that names the first declared language system no longer end up under theDFLTscript, and ascriptstatement naming the already-current script still narrows the language systems and terminates the current lookup while leaving thelookupflagalone, matching makeotf (#1824, #2522, #4169).OTLOffsetOverflowErrorinstead ofAttributeErrorso another contextual format can be tried (regression from #3439). When all formats overflow, split the ruleset in halves until it fits (#4171).pydantic/jiter (jiter)
v0.17.0: 2026-09-12Compare Source
What's Changed
serde_jsonover thejson-casescorpus by @samuelcolvin in #266JsonValueScratch, reusable stacks for parsing values by @samuelcolvin in #292Full Changelog: pydantic/jiter@v0.16.0...v0.17.0
matplotlib/matplotlib (matplotlib)
v3.11.2: REL: v3.11.2Compare Source
This is the second bugfix release of the 3.11.x series.
This release contains several bug-fixes and adjustments:
hexbinclipping in PDF output\textwith internal bracesPillowWriterResizeEventhandling forTextBoxaio-libs/multidict (multidict)
v6.8.0Compare Source
=====
(2026-09-09)
Bug fixes
A segmentation fault that could be triggered when getting an item is now fixed
-- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
1310.Fixed reference leak in iterators, views and
istr-- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
1311.Fixed the pure-Python :class:
~multidict.MultiDictconstructor and:py:meth:
~multidict.MultiDict.extend,:py:meth:
~multidict.MultiDict.update, and:py:meth:
~multidict.MultiDict.mergemethods over-allocating theirinternal hash table when called with both a positional argument and
keyword arguments, because keyword arguments were counted twice in the
size estimate -- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1338.Fixed
__repr__of :class:~multidict.MultiDict,:class:
~multidict.CIMultiDict, their proxies, and the keys/items viewsproducing invalid output when keys contained quote characters --
keys are now formatted with :func:
reprso the result is a valid Pythonstring literal -- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1342.Fixed a segfault when calling :py:meth:
~multidict.MultiDict.addwith only one of its two required arguments supplied by keyword, e.g.d.add(key="k"). Extra keyword arguments passed to the lookup and removal methods are also now rejected with :exc:TypeErrorinstead of being silently ignored.-- by :user:
devdanzinRelated issues and pull requests on GitHub:
:issue:
1376.Fixed a segfault when constructing a multidict iterator type directly, e.g.
type(iter(md.keys())).__new__(...). Such an iterator had a NULL internal pointer thatnext()dereferenced. The iterator types now forbid direct instantiation, the same way the view types were fixed in :issue:1163.-- by :user:
devdanzinRelated issues and pull requests on GitHub:
:issue:
1377.Fixed a segfault when using a :py:class:
~multidict.MultiDictor :py:class:~multidict.CIMultiDictcreated via__new__without calling__init__(for example a subclass that does not callsuper().__init__()). The internal state was left as NULL pointers that the first method call dereferenced.tp_newnow initializes the object to a valid empty mapping.-- by :user:
devdanzinRelated issues and pull requests on GitHub:
:issue:
1378.Fixed two crashes in the C extension caused by holding a raw pointer into a hash table across an operation that could reshape it. Updating a multidict from itself (e.g.
d.extend(d)) freed the very table being iterated -- a use-after-free;extend(self)now doubles the contents andupdate(self)/merge(self)are no-ops. Building a multidict from a list of pairs whose case-insensitive key.lower()shrinks that list read past the end of the list; the length is now re-checked on every iteration.-- by :user:
devdanzinRelated issues and pull requests on GitHub:
:issue:
1379.Fixed three reference/resource leaks on error paths in the C extension: the items-view
__contains__leaked the first element of a candidate pair when reading the second one raised;__repr__leaked itsPyUnicodeWriterwhen the multidict was mutated during iteration; and the internal iteration helper leaked the identity reference when key materialization failed under low memory.-- by :user:
devdanzinRelated issues and pull requests on GitHub:
:issue:
1381.Stopped several feature-detection fallbacks in the C extension from swallowing every exception. When probing an argument (
arg.items()/arg.keys()) or measuring it (len(other)) fails, the code now clears only the expected :exc:TypeError/:exc:AttributeErrorand lets everything else -- notably :exc:MemoryErrorand :exc:KeyboardInterrupt-- propagate, matching the already-correct sites elsewhere in the module.-- by :user:
devdanzinRelated issues and pull requests on GitHub:
:issue:
1382.Fixed a segmentation fault when extending a multidict with itself
-- by :user:
cananooand :user:asvetlov.Related issues and pull requests on GitHub:
:issue:
1398.Fixed a memory leak when
MultiDictandCIMultiDictinstances areinitialized more than once -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1412.Fixed a reference leak in items-view set operations
-- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1413.Fixed a memory leak when destroying C-extension multidict instances
and proxies -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1415.Fixed a reference leak from repeated
__init__calls onMultiDictProxyandCIMultiDictProxyinstances -- by :user:asvetlov.Related issues and pull requests on GitHub:
:issue:
1419.Fixed missing decref for :data:
Noneon error in :meth:~multidict.MultiDict.setdefault-- by :user:
asvetlovRelated issues and pull requests on GitHub:
:issue:
1421.Features
Added :py:func:
reversedsupport to the keys, values, and items views of:class:
~multidict.MultiDict, :class:~multidict.CIMultiDict, and theirproxies in both the C-extension and pure-Python implementations
-- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
448.Optimized key identity comparison for C Extension.
Now it uses fast path that is equal to :c:func:
PyUnicode_EqualfromPython 3.14+ but without redundant type checks. It gives ~15% speed-up on benchmarks with many key comparisons.
-- by :user:
asvetlovRelated issues and pull requests on GitHub:
:issue:
1406.Changed both the pure-Python and C implementations to mark a temporarily
removed hash table entry by setting the high bit of its hash instead of
overwriting it with a sentinel value, so restoring the entry no longer
recomputes the hash; :meth:
~multidict.MultiDict.getallis faster ~10% now in C version-- by :user:
asvetlovRelated issues and pull requests on GitHub:
:issue:
1426.Removals and backward incompatible breaking changes
Dropped support for Python 3.9 as it has reached end of life.
Related issues and pull requests on GitHub:
:issue:
1316.Dropped support for free-threaded Python 3.13 -- by :user:
ngoldbaum.Related issues and pull requests on GitHub:
:issue:
1326.Improved documentation
Fixed
CIMultiDictProxydocumentation to state it inherits fromMultiDictProxy(notMultiDict), and fixed missing word inistrsection -- by :user:veeceey.Related issues and pull requests on GitHub:
:issue:
1298.Clarified that
istrpreserves the original casing andcompares as a regular
str; case-insensitive matching ishandled by
CIMultiDict-- by :user:gyanu2507.Related issues and pull requests on GitHub:
:issue:
1397.Fixed broken RST markup in
items()docstrings-- by :user:
veeceey.Related issues and pull requests on GitHub:
:issue:
1299.Packaging updates and notes for downstreams
Dropped support for free-threaded Python 3.13 -- by :user:
ngoldbaum.Related issues and pull requests on GitHub:
:issue:
1326.Wheels for iOS and Android (CPython 3.13+) are now published on
release-tag builds, so downstreams on those platforms no longer need a
local compiler to install
multidict; these wheels are build-verifiedonly, since running the test suite on mobile needs a simulator or an
emulator -- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1337.Added support for building and shipping riscv64 wheels
-- by :user:
justeph.Related issues and pull requests on GitHub:
:issue:
1293.The
setuptoolsbuild dependency lower bound has been restored to be>= 47after an incorrect automated increase in :pr:1315-- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1400.Contributor-facing changes
Added support for collecting code coverage of isolated multidict tests
-- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
1314.Switched to
mirrors-clang-formatand enabled clang-format inpre-commit.ci-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1318.Added a release-tag-gated CI job that cross-compiles the C extension
for iOS and Android through
cibuildwheel-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1337.Added an
AGENTS.mdorientation file at the repository root, covering thepull request template, the
CHANGES/news fragment conventions, thedraft-PR / human-review workflow, and the dual pure-Python and C-extension
parity rule, so LLM contributors land changes that match project style
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1339.Added
init,installable,instantiation,parametrization,parametrized,postfix, andunparseableto the docs spelling listso news fragments and docs can use these words without failing the spell
check build -- by :user:
pctablet505.Related issues and pull requests on GitHub:
:issue:
1343.Documented three common agent failure modes in
:file:
AGENTS.md: the docs spell check(
make doc-spelling) catches unknown words in news fragmentsbefore CI does; coverage runs over the test tree too, so
unreachable defensive
raiseguards and one-sided cleanupbranches in tests will surface as uncovered on the codecov
patch report; and branch creation is restricted on
aio-libs/multidict, so PRs must be pushed from a fork-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1343, :issue:1345.Trimmed the CI test matrix to drop redundant
Py_DEBUGjobs onmacOS and Windows and to gate the
windows-11-armwheel build torelease-time only, cutting CI wall-clock by roughly a third without
reducing code coverage -- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1346.Added a
CLAUDE.mdat the repository root that imports:file:
AGENTS.mdvia Claude Code's@-syntax, so theproject's LLM contributor rules load automatically when
working in Claude Code
-- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1347.Enabled the
I(import sorting) rule in[tool.ruff.lint]soruff checkcovers import order on topof the existing
UP(pyupgrade) group, and updated theruff-checkpre-commit hook to run with--fix --exit-non-zero-on-fix --show-fixesso import-orderfixes apply on commit. Sorted imports in four
tests/filesto match the new rule -- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1348.Enabled the
PLC0415(import-outside-top-level) rule in[tool.ruff.lint]. Function-scoped imports must now opt inwith
# noqa: PLC0415plus a comment explaining the reason(typically avoiding a heavy optional dependency at import time).
This catches a pattern that LLM contributors frequently introduce.
There are currently no opt-outs in the tree, so the rule is
enforced everywhere
ruff checkruns-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1349.Switched the
cibuildwheelbuild frontend tobuild[uv]sothat
uvprovisions every build and test virtual environmentin the wheel matrix. Test-dependency installation in particular
drops from a multi-second
pip installper ABI to a roughlysub-second
uvresolve-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1350.Overrode
CIBW_BUILD_FRONTEND=buildfor the odd-arch wheelmatrix; the upstream
manylinux/musllinuximages forthose arches do not ship
uv-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1352.Allowed re-running the deploy job after a partial release failure: the
Make Releasestep now skips when the GitHub Release already exists,and the PyPI publish step uses
skip-existingso dists that werealready uploaded on a prior attempt do not break the retry
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1353.Switched the aarch64 and armv7l wheel builds to GitHub's native ARM
runners. The aarch64 wheels now build without QEMU emulation, and
armv7l runs on aarch64 hosts so its 32-bit ARM execution is far
cheaper than the previous aarch64-on-x86_64 path
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
1354.Documented design principles for pure-Python :class:
~multidict.istrimplementation-- by :user:
asvetlovRelated issues and pull requests on GitHub:
:issue:
1360.Pinned
coverageto thectracemeasurement core so the test suite runson Python 3.14. Coverage picks
sysmonthere, which cannot record thedynamic contexts
pytest-covswitches at runtime, and the resulting warningbecame an error under the suite's
filterwarningssetting-- by :user:
rodrigobnogueira.Related issues and pull requests on GitHub:
:issue:
1393.Dependabot has been restricted to the
requirementssubdirectory toavoid unintended updates outside dependency requirement files
-- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1400.Enabled automatic upgrades from ruff after each python version that is dropped
-- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
1325.Miscellaneous internal changes
Explicitly marked
empty_htkeysasconst.Moved the structure to
.rodatalinker section.Unexpected modification of the structure will lead to segfault instead
of corrupting the data and fail fast.
.rodatais mount as read-only-mapped, it is shared well acrossmultiple threads without cache misses.
The change is pretty trivial, it is made for the sake of correctness,
not for speedup.
-- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1405.Slightly reorganized multidict creating process.
md_init()creates an empty multidict.tp_allocslot is used in object cloning instead of bare :c:func:PyType_GenericNewcall.-- by :user:
asvetlovRelated issues and pull requests on GitHub:
:issue:
1420.Dropped dead code,
_md_del_at()and_md_del_at_for_upd()never fails-- by :user:
asvetlovRelated issues and pull requests on GitHub:
:issue:
1423.Fixed a missing space in the :exc:
ValueErrormessageraised when constructing a multidict from a sequence
-- by :user:
veeceey.Related issues and pull requests on GitHub:
:issue:
1295.Renamed the benchmark script from
benchmarks/becnhmark.pytobenchmarks/benchmark.pyso it matches the invocation documented in:doc:
benchmark-- by :user:aiolibsbot.Related issues and pull requests on GitHub:
:issue:
1335.numpy/numpy (numpy)
v2.5.3Compare Source
tox-dev/platformdirs (platformdirs)
v4.11.8Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/platformdirs@4.11.7...4.11.8
v4.11.7Compare Source
Full Changelog: tox-dev/platformdirs@4.11.6...4.11.7
aio-libs/propcache (propcache)
v0.5.4Compare Source
=====
(2026-09-15)
Packaging updates and notes for downstreams
Fixed the release wheels being compiled without optimization since
version 0.5.0. The build backend set
CFLAGSto add-ffile-prefix-map, which replaced the interpreter's own compilerflags instead of extending them, so
-O3and-DNDEBUGweredropped; the extra flags now go through
CPPFLAGS, which isappended. Cached property reads are about 1.5x faster than in 0.5.3
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
244, :issue:302.v0.5.3Compare Source
=====
(2026-09-15)
Bug fixes
Fixed a possible crash in the C implementation of
cached_propertyand
under_cached_propertyon free-threaded Python, where a cachedvalue could be freed by another thread while it was being read; errors
raised while looking up the cache are now propagated on all builds,
and the computed value is no longer leaked if storing it fails
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
297.Removals and backward incompatible breaking changes
Dropped support for free-threaded Python 3.13 -- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
223.Improved documentation
Updated discussion links from the defunct Google Groups forum to
GitHub Discussions
-- by :user:
gundalow.Related issues and pull requests on GitHub:
:issue:
217.Packaging updates and notes for downstreams
The
setuptoolsbuild dependency lower bound has been restored to be>= 47after an incorrect automated increase in :pr:207-- by :user:
bbhtt.Related issues and pull requests on GitHub:
:issue:
207.Dropped support for free-threaded Python 3.13 -- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
223.Dropped the deprecated
License :: OSI Approved :: Apache Software Licenseclassifier;setuptools84 warns about it and the distbuild treats warnings as errors, so releases could no longer be built
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
299.Contributor-facing changes
Dependabot has been restricted to the
requirementssubdirectory toavoid unintended updates outside dependency requirement files
-- by :user:
bbhtt.Related issues and pull requests on GitHub:
:issue:
207.Added an
AGENTS.mdfile with contributor guidance for AIcoding agents, adapted from the
yarlequivalent-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
231.Migrated from standalone
blackandisortpre-commit hooksto
ruff formatand the ruffIlint rule, sharing a new[tool.ruff]config inpyproject.toml.ruff-checkrunswith
--fixso import-order fixes apply on commit, and theorphan
[isort]block insetup.cfgwas removed-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
232.Switched the
cibuildwheelbuild frontend tobuild[uv]sothat
uvprovisions every build and test virtual environmentin the wheel matrix. Test-dependency installation in particular
drops from a multi-second
pip installper ABI to a roughlysub-second
uvresolve-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
234.Dropped the
libffi-develinstall from thecibuildwheelLinux
before-allstep. It was added in :pr:75socfficould build from source during wheel testing; thecurrent wheel-test chain no longer pulls in
cffi, so theheader package is dead weight
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
236.The type preciseness coverage report generated by
MyPy <https://mypy-lang.org>__ is now uploaded toCoveralls <https://coveralls.io/github/aio-libs/propcache>__ andwill not be included in the
Codecov views <https://app.codecov.io/gh/aio-libs/propcache>__ going forward-- by :user:
aiolibsbot.Related issues and pull requests on GitHub:
:issue:
239.Switched CI/CD to
tox-dev/workflow's :file:reusable-tox.ymldriven by an in-tree :file:
tox.ini. Thebuild,metadata-validationandlint(pre-commit,spellcheck-docs) jobs all run through the reusable workflow;mypycoverage uploads to Coveralls from apost-tox-jobhook
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
243.Overrode
CIBW_BUILD_FRONTEND=buildfor the QEMU-emulatedodd-arch wheel matrix, since the pypa odd-arch container images
do not ship
uvpreinstalled and the project's:file:
pyproject.tomlsetsbuild-frontend = "build[uv]"-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
246.Allowed re-running the deploy job after a partial release failure: the
Make Releasestep now skips when the GitHub Release already exists,and the PyPI publish step uses
skip-existingso dists that werealready uploaded on a prior attempt do not break the retry
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
247.Switched the aarch64 and armv7l wheel builds to GitHub's native ARM
runners. The aarch64 wheels now build without QEMU emulation, and
armv7l runs on aarch64 hosts so its 32-bit ARM execution is far
cheaper than the previous aarch64-on-x86_64 path
-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
248.Added
UV_CONSTRAINTandUV_BUILD_CONSTRAINTalongsidePIP_CONSTRAINTandPIP_BUILD_CONSTRAINTin thecibuildwheelenvironment so the :file:requirements/cython.txtpin is honored under the
build[uv]frontend;uv pipignores the
PIP_variables and reads only theUV_ones,while the
PIP_variants are kept for the pip fallback path-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
249.Fixed coverage for testing benchmarks when codspeed is not installed
-- by :user:
Vizonex.Related issues and pull requests on GitHub:
:issue:
251.Stopped running the test suite inside the wheel build jobs outside of
release builds, since the test matrix installs and tests the same
wheels, and added Python 3.15 and 3.15t to the test matrix so those
wheels stay covered. Off-tag macOS builds are now limited to the
architecture the test matrix runs on. Release builds still build every
architecture and test every wheel, and all release checks in the CI
workflow now use
github.ref_type-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
300.alexmojaki/pure_eval (pure-eval)
v0.2.4Compare Source
danielgatis/rembg (rembg)
v2.0.84Compare Source
What's Changed
Full Changelog: danielgatis/rembg@v2.0.83...v2.0.84
v2.0.83Compare Source
Full Changelog: danielgatis/rembg@v2.0.82...v2.0.83
v2.0.82Compare Source
Full Changelog: danielgatis/rembg@v2.0.81...v2.0.82
astral-sh/ruff (ruff)
v0.16.7Compare Source
Released on 2026-09-10.
Preview features
ruff] Add rule for default values on method receivers (RUF077) (#26700)ruff] Recognizere.prefixmatch(RUF039,RUF055) (#28311)Bug fixes
flake8-implicit-str-concat] Mark fix unsafe when it creates a docstring (ISC003) (#27981)flake8-tidy-imports] Skip fixes for multi-member imports (TID254) (#26584)pylint] GateImportCycleErroron Python 3.15 (PLW0133) (#28310)Rule changes
D211andD203rule conflict diagnostic (#28444)sliceandfrozendictgenerics (#28477)__cached__for Python 3.15 (#28476)pyupgrade] Stop recommending removedtyping.no_type_check_decorator(UP035) (#28475)Performance
Documentation
line-lengthpath in--configexample (#28392)Other changes
Contributors
v0.16.6Compare Source
Released on 2026-09-03.
Preview features
pytest-fixture-autouseto therestrictioncategory (#28219)flake8-pytest-style] Add an autofix forPT020(#27993)flake8-tidy-imports] Prevent fix loop betweenTID254andTID255(#28262)isort] Exclude pragma comments from line length calculation (I001) (#27313)Bug fixes
flake8-async,pylint] Recognizebuiltins.open(ASYNC230,PLW1514) (#28021)flake8-bugbear] Fix panic onmatchsubjects (B031) (#27781)flake8-datetimez] Rejecttzinfo=Nonefordatetimebounds (DTZ901) (#28022)flake8-pytest-style] Avoid duplicatePT017diagnostics (#27918)ruff] Removelint.externalhiConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ 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.