Repository navigation
Update dependency multidict to v7.2.1 - #61
Open
red-hat-konflux-kflux-prd-rh02[bot] wants to merge 1 commit into
Open
red-hat-konflux-kflux-prd-rh02[bot] wants to merge 1 commit into
red-hat-konflux-kflux-prd-rh02[bot] wants to merge 1 commit into
Conversation
red-hat-konflux-kflux-prd-rh02
Bot
force-pushed
the
konflux/mintmaker/main/multidict-7.x
branch
from
October 27, 2026 12:06
5bf9c4b to
945170c
Compare
Signed-off-by: red-hat-konflux-kflux-prd-rh02 <190377777+red-hat-konflux-kflux-prd-rh02[bot]@users.noreply.github.com>
red-hat-konflux-kflux-prd-rh02
Bot
force-pushed
the
konflux/mintmaker/main/multidict-7.x
branch
from
October 28, 2026 00:06
945170c to
7b20e66
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:
==7.1.0→==7.2.1Release Notes
aio-libs/multidict (multidict)
v7.2.1Compare Source
=====
(2026-10-24)
Bug fixes
Fixed a regression in 7.2.0 where a subclass of
:class:
~multidict.MultiDictProxyor :class:~multidict.CIMultiDictProxythat converted its argument in its own
__init__()raised:exc:
TypeErrorbefore that__init__()ran; such a subclass got anempty multidict until its
__init__()set the proxied one-- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1824, :issue:1825.v7.2.0Compare Source
=====
(2026-10-23)
7.2.0 drops Python 3.10, fixes a crash in a proxy built without
__init__()and a :exc:MemoryErrorfrom a huge__length_hint__(),and is otherwise a performance release for the C extension: lookups,
adds, updates and deletes each needed a few percent fewer instructions.
Bug fixes
Stopped a huge
__length_hint__()from raising :exc:MemoryErrorin:meth:
~multidict.MultiDict.extend, :meth:~multidict.MultiDict.updateand :meth:
~multidict.MultiDict.merge; the C extension capped the roomit reserved for the hint at the largest table the constructor allocates
up front -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1767.Fixed a segmentation fault when using a :class:
~multidict.MultiDictProxyor :class:
~multidict.CIMultiDictProxybuilt by__new__()without__init__();__new__()started requiring the proxied multidict, thesame argument as the constructor -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1782.Features
Sped up reading a multidict in the C extension.
md[key],:meth:
~multidict.MultiDict.getand :meth:~multidict.MultiDict.getonebecame up to 7% faster by returning the lookup's result by value instead
of through a pointer to the caller's local, which had made
-fstack-protector-strongadd a stack canary to every call. On the GILbuild a :meth:
~multidict.MultiDict.getmiss became 5% faster andkey in mdinlined its hash table lookup. On the free-threaded build:meth:
~multidict.MultiDict.getallstopped taking the multidict's lockfor a multidict without repeated keys, the way
:meth:
~multidict.MultiDict.getalready avoided it.len(md.keys())and iterating over the keys of a multidict that holds a key more than
once became 4% to 13% faster -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1775, :issue:1776, :issue:1781, :issue:1800, :issue:1817.Sped up building and updating a multidict in the C extension. On the GIL
build, constructing a multidict from a sequence of pairs needed 8% to 10%
fewer instructions and :meth:
~multidict.MultiDict.update3.5% to 4.5%fewer. On the free-threaded build, building a
:class:
~multidict.MultiDictbecame up to 14% faster, since a table thatis both full and unable to hold the new key in its compact form was grown
and moved in one rebuild, and :meth:
~multidict.MultiDict.add,md[key] = valuefor a new key and:meth:
~multidict.MultiDict.setdefaultneeded 2% to 3% fewerinstructions, about 1% fewer on the GIL build. Updating a multidict with
existing keys needed 1.5% to 2.9% fewer instructions, while adding a new
key needed about 0.5% more on the GIL build -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1763, :issue:1774, :issue:1780, :issue:1785, :issue:1802.Sped up replacing and removing items in the C extension.
:meth:
~multidict.MultiDict.add, :meth:~multidict.MultiDict.getall,md[key] = valueanddel md[key]stopped computing the identityof a key that, or whose :class:
~multidict.istrcanonical form, alreadyserves as one, as
md[key]did, and checked a:class:
~multidict.CIMultiDictkey holding uppercase letters only once.On the GIL build
del md[key]needed 4% to 5% fewer instructions,md[key] = valueabout 2% fewer and :meth:~multidict.MultiDict.pop1% fewer. Replacing a key that had duplicates needed 0.8% to 1.7% fewer
instructions, and :meth:
~multidict.MultiDict.clearbecame 6% faster onthe free-threaded build -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1769, :issue:1770, :issue:1779, :issue:1796, :issue:1809.Removals and backward incompatible breaking changes
Dropped support for Python 3.10 as it has reached end of life
-- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1777.Improved documentation
Refreshed the instruction-count tables in the benchmarking reference
against the current tree -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1816, :issue:1818.Packaging updates and notes for downstreams
Added the CPython 3.15 trove classifier and started testing the
GIL and free-threaded 3.15 builds in CI -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1766.Contributor-facing changes
Split the release publishing and signing across four parallel jobs, so
that each one finishes well within the lifetime of its short-lived PyPI
upload token -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1768, :issue:1822.Changed the
clear()benchmarks to clear a thousand prebuiltmultidicts of 0 to 99 items each, copied outside the measured region,
since the copy inside the timed loop and the single small table it
measured made the result swing by up to 19% between runs of the same
commit -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1784.Pinned Hypothesis in the MyPy pre-commit hooks and dropped a
type: ignorecomment from the Hypothesis tests that became unusedonce Hypothesis annotated
run_state_machine_as_test(), which failedthe MyPy lint job -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1820.Fixed a test of a huge
__length_hint__()failing on 32-bit builds,where its
2**40hint did not fit aPy_ssize_t-- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1821.Miscellaneous internal changes
Split the C extension's helpers per table kind, so that the lookup
loops of
pop(),popall(), item replacement andupdate(), thetable rebuild and the deferred delete of an entry call the helper for
their own kind instead of testing it again, and moved the choice between
overwriting and dropping each entry of a repeated key into the per-kind
loops of
update(). Folded helpers with a single caller into thatcaller: choosing the kind of a new table, reading a compact entry's
identity and hash, filling a new entry, replacing a key's values,
deleting a key and looking up the first value of a key that needs a
computed identity. Merged the two per-kind checks for a deleted entry
into one, and removed the separate watched copies of delete, pop and
replace, folding the add that follows a missed replace into the replace
itself -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1771, :issue:1772, :issue:1773, :issue:1786, :issue:1788,:issue:
1789, :issue:1790, :issue:1792, :issue:1804, :issue:1805,:issue:
1810, :issue:1811.Removed duplicated code from the C extension: the
(key, default)methods shared their argument parsing and missing-key result, and one
macro each replaced the copies of the lock-free compact entry match on
the free-threaded build and of the per-kind dispatch of a single key
lookup. Turned the watcher record, flush and pending check helpers and
_growth_rate()into macros, so that a multidict without watchersskipped evaluating the event arguments, renamed the lowercase
function-like macros to upper case, and dropped the leading underscore
from the watcher functions that the macros call from other headers
-- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1793, :issue:1794, :issue:1795, :issue:1806, :issue:1807,:issue:
1808, :issue:1812.Adjusted how the C extension spends GCC's inlining budget: marked most
checks that lead to a raised exception as unlikely, so the compiler
moves the error paths out of the hot code, kept the event name lookup of
a failing watcher callback report and the cleanup of a dropped watcher
event log out of line, and dropped the
inlinehint from the helpersthat compute a table's size and that rebuild, build or free a table's
keys -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1783, :issue:1791, :issue:1801, :issue:1815.Moved the C extension's
repr()of multidicts, proxies and views andits equality comparison out of the hash table header, each into a header
of its own -- by :user:
asvetlov.Related issues and pull requests on GitHub:
:issue:
1778, :issue:1787.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
To execute skipped test pipelines write comment
/ok-to-test.Documentation
Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.