Skip to content

Commit ed11b39

Browse files
Bump multidict from 6.4.4 to 6.5.0 (#11223)
Bumps [multidict](https://github.com/aio-libs/multidict) from 6.4.4 to 6.5.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/aio-libs/multidict/releases">multidict's releases</a>.</em></p> <blockquote> <h2>6.5.0</h2> <h2>Features</h2> <ul> <li> <p>Replace internal implementation from an array of items to hash table. algorithmic complexity for lookups is switched from O(N) to O(1).</p> <p>The hash table is very similar to :class:<code>dict</code> from CPython but it allows keys duplication.</p> <p>The benchmark shows 25-50% boost for single lookups, x2-x3 for bulk updates, and x20 for some multidict view operations. The gain is not for free: :class:<code>~multidict.MultiDict.add</code> and :class:<code>~multidict.MultiDict.extend</code> are 25-50% slower now. We consider it as acceptable because the lookup is much more common operation that addition for the library domain.</p> <p><em>Related issues and pull requests on GitHub:</em> <a href="https://redirect.github.com/aio-libs/multidict/issues/1128">#1128</a>.</p> </li> </ul> <h2>Contributor-facing changes</h2> <ul> <li> <p>Builds have been added for arm64 Windows wheels and the <code>reusable-build-wheel.yml</code> template has been modified to allow for an os value (<code>windows-11-arm</code>) which does not end with the <code>-latest</code> postfix.</p> <p><em>Related issues and pull requests on GitHub:</em> <a href="https://redirect.github.com/aio-libs/multidict/issues/1167">#1167</a>.</p> </li> </ul> <hr /> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/aio-libs/multidict/blob/master/CHANGES.rst">multidict's changelog</a>.</em></p> <blockquote> <h1>6.5.0</h1> <p><em>(2025-06-17)</em></p> <h2>Features</h2> <ul> <li> <p>Replace internal implementation from an array of items to hash table. algorithmic complexity for lookups is switched from O(N) to O(1).</p> <p>The hash table is very similar to :class:<code>dict</code> from CPython but it allows keys duplication.</p> <p>The benchmark shows 25-50% boost for single lookups, x2-x3 for bulk updates, and x20 for some multidict view operations. The gain is not for free: :class:<code>~multidict.MultiDict.add</code> and :class:<code>~multidict.MultiDict.extend</code> are 25-50% slower now. We consider it as acceptable because the lookup is much more common operation that addition for the library domain.</p> <p><em>Related issues and pull requests on GitHub:</em> :issue:<code>1128</code>.</p> </li> </ul> <h2>Contributor-facing changes</h2> <ul> <li> <p>Builds have been added for arm64 Windows wheels and the <code>reusable-build-wheel.yml</code> template has been modified to allow for an os value (<code>windows-11-arm</code>) which does not end with the <code>-latest</code> postfix.</p> <p><em>Related issues and pull requests on GitHub:</em> :issue:<code>1167</code>.</p> </li> </ul> <hr /> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aio-libs/multidict/commit/df5b5dbb6e3e262b9311755cf130c669e121eb81"><code>df5b5db</code></a> Release 6.5.0 (<a href="https://redirect.github.com/aio-libs/multidict/issues/1176">#1176</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/9d3c53f28c4c18b1a032af45d013a0bbe12821b9"><code>9d3c53f</code></a> Replace pair_list with hash table (<a href="https://redirect.github.com/aio-libs/multidict/issues/1128">#1128</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/bdbbc4876097669e5cb5939bd63c163a1cea2fe1"><code>bdbbc48</code></a> Bump pytest-cov from 6.0.0 to 6.1.0 (<a href="https://redirect.github.com/aio-libs/multidict/issues/1119">#1119</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/b23c192ed907155efcc5ecd90f2d0b7a8512b63a"><code>b23c192</code></a> Bump pytest to 8.4.0 (<a href="https://redirect.github.com/aio-libs/multidict/issues/1169">#1169</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/87c76b8fc60496f266fa2a010f814b87ab2c204e"><code>87c76b8</code></a> Fix failed spelling task (<a href="https://redirect.github.com/aio-libs/multidict/issues/1168">#1168</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/fa9e4b6d47963f261d03269fc18f9f4675c118f8"><code>fa9e4b6</code></a> Add Windows arm64 builds (<a href="https://redirect.github.com/aio-libs/multidict/issues/1167">#1167</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/874fc89640cc3e33ad9f5d25820d2786bb8b97a9"><code>874fc89</code></a> Increment version to 6.4.5.dev0 (<a href="https://redirect.github.com/aio-libs/multidict/issues/1165">#1165</a>)</li> <li>See full diff in <a href="https://github.com/aio-libs/multidict/compare/v6.4.4...v6.5.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=multidict&package-manager=pip&previous-version=6.4.4&new-version=6.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent 2ad7568 commit ed11b39

File tree

7 files changed

+7
-7
lines changed

7 files changed

+7
-7
lines changed

requirements/base.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ gunicorn==23.0.0
2626
# via -r requirements/base.in
2727
idna==3.4
2828
# via yarl
29-
multidict==6.4.4
29+
multidict==6.5.0
3030
# via
3131
# -r requirements/runtime-deps.in
3232
# yarl

requirements/constraints.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ markupsafe==3.0.2
113113
# via jinja2
114114
mdurl==0.1.2
115115
# via markdown-it-py
116-
multidict==6.4.4
116+
multidict==6.5.0
117117
# via
118118
# -r requirements/multidict.in
119119
# -r requirements/runtime-deps.in

requirements/cython.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
cython==3.1.2
88
# via -r requirements/cython.in
9-
multidict==6.4.4
9+
multidict==6.5.0
1010
# via -r requirements/multidict.in
1111
typing-extensions==4.14.0
1212
# via multidict

requirements/dev.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ markupsafe==3.0.2
111111
# via jinja2
112112
mdurl==0.1.2
113113
# via markdown-it-py
114-
multidict==6.4.4
114+
multidict==6.5.0
115115
# via
116116
# -r requirements/runtime-deps.in
117117
# yarl

requirements/multidict.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
# pip-compile --allow-unsafe --output-file=requirements/multidict.txt --resolver=backtracking --strip-extras requirements/multidict.in
66
#
7-
multidict==6.4.4
7+
multidict==6.5.0
88
# via -r requirements/multidict.in
99
typing-extensions==4.14.0
1010
# via multidict

requirements/runtime-deps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ frozenlist==1.7.0
2424
# aiosignal
2525
idna==3.4
2626
# via yarl
27-
multidict==6.4.4
27+
multidict==6.5.0
2828
# via
2929
# -r requirements/runtime-deps.in
3030
# yarl

requirements/test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ markdown-it-py==3.0.0
5959
# via rich
6060
mdurl==0.1.2
6161
# via markdown-it-py
62-
multidict==6.4.4
62+
multidict==6.5.0
6363
# via
6464
# -r requirements/runtime-deps.in
6565
# yarl

0 commit comments

Comments
 (0)