Skip to content

Commit 8541a7c

Browse files
Bump multidict from 6.2.0 to 6.3.1 (#10667)
Bumps [multidict](https://github.com/aio-libs/multidict) from 6.2.0 to 6.3.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.3.0</h2> <h2>Bug fixes</h2> <ul> <li> <p>Set operations for <code>KeysView</code> and <code>ItemsView</code> of case-insensitive multidicts and their proxies are processed in case-insensitive manner.</p> <p><em>Related issues and pull requests on GitHub:</em> <a href="https://redirect.github.com/aio-libs/multidict/issues/965">#965</a>.</p> </li> <li> <p>Rewrote :class:<code>multidict.CIMultiDict</code> and it proxy to always return :class:<code>multidict.istr</code> keys. <code>istr</code> is derived from :class:<code>str</code>, thus the change is backward compatible.</p> <p>The performance boost is about 15% for some operations for C Extension, pure Python implementation have got a visible (15% - 230%) speedup as well.</p> <p><em>Related issues and pull requests on GitHub:</em> <a href="https://redirect.github.com/aio-libs/multidict/issues/1097">#1097</a>.</p> </li> <li> <p>Fixed a crash when extending a multidict from multidict proxy if C Extensions were used.</p> <p><em>Related issues and pull requests on GitHub:</em> <a href="https://redirect.github.com/aio-libs/multidict/issues/1100">#1100</a>.</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Implemented a custom parser for <code>METH_FASTCALL | METH_KEYWORDS</code> protocol -- by :user:<code>asvetlov</code>.</p> <p>The patch re-enables fast call protocol in the :py:mod:<code>multidict</code> C Extension.</p> <p>Speedup is about 25%-30% for the library benchmarks for Python 3.12+.</p> <p><em>Related issues and pull requests on GitHub:</em> <a href="https://redirect.github.com/aio-libs/multidict/issues/1070">#1070</a>.</p> </li> <li> <p>The C-extension no longer pre-allocates a Python exception object in lookup-related methods of :py:class:<code>~multidict.MultiDict</code> when the passed-in <em>key</em> is not found but <em>default</em> value is provided.</p> <p>Namely, this affects :py:meth:<code>MultiDict.getone() &lt;multidict.MultiDict.getone&gt;</code>, :py:meth:<code>MultiDict.getall() &lt;multidict.MultiDict.getall&gt;</code>, :py:meth:<code>MultiDict.get() &lt;multidict.MultiDict.get&gt;</code>, :py:meth:<code>MultiDict.pop() &lt;multidict.MultiDict.pop&gt;</code>, :py:meth:<code>MultiDict.popone() &lt;multidict.MultiDict.popone&gt;</code>, and :py:meth:<code>MultiDict.popall() &lt;multidict.MultiDict.popall&gt;</code>.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.3.0</h1> <p><em>(2025-03-31)</em></p> <h2>Bug fixes</h2> <ul> <li> <p>Set operations for <code>KeysView</code> and <code>ItemsView</code> of case-insensitive multidicts and their proxies are processed in case-insensitive manner.</p> <p><em>Related issues and pull requests on GitHub:</em> :issue:<code>965</code>.</p> </li> <li> <p>Rewrote :class:<code>multidict.CIMultiDict</code> and it proxy to always return :class:<code>multidict.istr</code> keys. <code>istr</code> is derived from :class:<code>str</code>, thus the change is backward compatible.</p> <p>The performance boost is about 15% for some operations for C Extension, pure Python implementation have got a visible (15% - 230%) speedup as well.</p> <p><em>Related issues and pull requests on GitHub:</em> :issue:<code>1097</code>.</p> </li> <li> <p>Fixed a crash when extending a multidict from multidict proxy if C Extensions were used.</p> <p><em>Related issues and pull requests on GitHub:</em> :issue:<code>1100</code>.</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Implemented a custom parser for <code>METH_FASTCALL | METH_KEYWORDS</code> protocol -- by :user:<code>asvetlov</code>.</p> <p>The patch re-enables fast call protocol in the :py:mod:<code>multidict</code> C Extension.</p> <p>Speedup is about 25%-30% for the library benchmarks for Python 3.12+.</p> <p><em>Related issues and pull requests on GitHub:</em> :issue:<code>1070</code>.</p> </li> <li> <p>The C-extension no longer pre-allocates a Python exception object in lookup-related methods of :py:class:<code>~multidict.MultiDict</code> when the passed-in <em>key</em> is not found but <em>default</em> value is provided.</p> <p>Namely, this affects :py:meth:<code>MultiDict.getone() &lt;multidict.MultiDict.getone&gt;</code>, :py:meth:<code>MultiDict.getall() &lt;multidict.MultiDict.getall&gt;</code>, :py:meth:`MultiDict.get()</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aio-libs/multidict/commit/93482a83d2c0b9246992b34b95e4748aaa417151"><code>93482a8</code></a> Release 6.3.0 (<a href="https://redirect.github.com/aio-libs/multidict/issues/1109">#1109</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/5d022e9957a5e9ec888adf736fdd563783d92c9b"><code>5d022e9</code></a> Properly support set operations for case insensitive multidict views (<a href="https://redirect.github.com/aio-libs/multidict/issues/1038">#1038</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/675c4ae3a8ce52d55e0f62ee7f77fca6442db93a"><code>675c4ae</code></a> Benchmarks for ItemsView (<a href="https://redirect.github.com/aio-libs/multidict/issues/1108">#1108</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/b5d9bd1a0d50afc94c892423b1c9782d5ff6ed15"><code>b5d9bd1</code></a> Add benchmarks for iterating multidict (<a href="https://redirect.github.com/aio-libs/multidict/issues/1107">#1107</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/1ba64e739de1c41cd51ce2e4ef6f246420a638a9"><code>1ba64e7</code></a> Run benchmark against all multidict implementations (<a href="https://redirect.github.com/aio-libs/multidict/issues/1106">#1106</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/389758e0b4ad7c5037b56a156106c7e82ad54201"><code>389758e</code></a> Use istr as keys in CIMultiDict (<a href="https://redirect.github.com/aio-libs/multidict/issues/1097">#1097</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/10a97e1340d80a7f22adcd69ffd575345f0d9143"><code>10a97e1</code></a> Remove the last element by popitem() (<a href="https://redirect.github.com/aio-libs/multidict/issues/1105">#1105</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/6097b60832b3a9c841f821a41527606bd9dff3bc"><code>6097b60</code></a> Optimize multidict extending (<a href="https://redirect.github.com/aio-libs/multidict/issues/1101">#1101</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/20515ba388e903646bb8bffb2f62c8f64e9af443"><code>20515ba</code></a> Add benchmarks for creating multidict from dict (<a href="https://redirect.github.com/aio-libs/multidict/issues/1104">#1104</a>)</li> <li><a href="https://github.com/aio-libs/multidict/commit/f6b4db155898a71da5e915767b285aa2f1424765"><code>f6b4db1</code></a> Add benchmarks for updating/extending multidict with kwargs (<a href="https://redirect.github.com/aio-libs/multidict/issues/1103">#1103</a>)</li> <li>Additional commits viewable in <a href="https://github.com/aio-libs/multidict/compare/v6.2.0...v6.3.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.2.0&new-version=6.3.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 06aa8fd commit 8541a7c

File tree

7 files changed

+7
-7
lines changed

7 files changed

+7
-7
lines changed

Diff for: requirements/base.txt

+1-1
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.2.0
29+
multidict==6.3.1
3030
# via
3131
# -r requirements/runtime-deps.in
3232
# yarl

Diff for: requirements/constraints.txt

+1-1
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.2.0
114+
multidict==6.3.1
115115
# via
116116
# -r requirements/multidict.in
117117
# -r requirements/runtime-deps.in

Diff for: requirements/cython.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
cython==3.0.12
88
# via -r requirements/cython.in
9-
multidict==6.2.0
9+
multidict==6.3.1
1010
# via -r requirements/multidict.in
1111
typing-extensions==4.12.2
1212
# via multidict

Diff for: requirements/dev.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ markupsafe==3.0.2
109109
# via jinja2
110110
mdurl==0.1.2
111111
# via markdown-it-py
112-
multidict==6.2.0
112+
multidict==6.3.1
113113
# via
114114
# -r requirements/runtime-deps.in
115115
# yarl

Diff for: requirements/multidict.txt

+1-1
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.2.0
7+
multidict==6.3.1
88
# via -r requirements/multidict.in
99
typing-extensions==4.12.2
1010
# via multidict

Diff for: requirements/runtime-deps.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ frozenlist==1.5.0
2424
# aiosignal
2525
idna==3.4
2626
# via yarl
27-
multidict==6.2.0
27+
multidict==6.3.1
2828
# via
2929
# -r requirements/runtime-deps.in
3030
# yarl

Diff for: requirements/test.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ markdown-it-py==3.0.0
5757
# via rich
5858
mdurl==0.1.2
5959
# via markdown-it-py
60-
multidict==6.2.0
60+
multidict==6.3.1
6161
# via
6262
# -r requirements/runtime-deps.in
6363
# yarl

0 commit comments

Comments
 (0)