summaryrefslogtreecommitdiffstats
path: root/contrib/python/multidict
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2026-02-11 09:20:15 +0300
committerrobot-piglet <[email protected]>2026-02-11 10:24:33 +0300
commit9662901efa290997a5990fe3a98e0f3f572fbbcd (patch)
tree09e62600009025a39c18238773edc53d57c69bbb /contrib/python/multidict
parent72e2e4fb5634001484795bce3f6ca27e21b24905 (diff)
Intermediate changes
commit_hash:7e33eedd3346f1d14784103b125731b0608488a2
Diffstat (limited to 'contrib/python/multidict')
-rw-r--r--contrib/python/multidict/.dist-info/METADATA2
-rw-r--r--contrib/python/multidict/multidict/__init__.py2
-rw-r--r--contrib/python/multidict/multidict/_multilib/hashtable.h2
-rw-r--r--contrib/python/multidict/tests/isolated/multidict_pop.py16
-rw-r--r--contrib/python/multidict/ya.make2
5 files changed, 18 insertions, 6 deletions
diff --git a/contrib/python/multidict/.dist-info/METADATA b/contrib/python/multidict/.dist-info/METADATA
index 1ab8dd6468c..bb82e714f35 100644
--- a/contrib/python/multidict/.dist-info/METADATA
+++ b/contrib/python/multidict/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: multidict
-Version: 6.7.0
+Version: 6.7.1
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
diff --git a/contrib/python/multidict/multidict/__init__.py b/contrib/python/multidict/multidict/__init__.py
index a688932e52f..e3db9e199b1 100644
--- a/contrib/python/multidict/multidict/__init__.py
+++ b/contrib/python/multidict/multidict/__init__.py
@@ -23,7 +23,7 @@ __all__ = (
"upstr",
)
-__version__ = "6.7.0"
+__version__ = "6.7.1"
if TYPE_CHECKING or not USE_EXTENSIONS:
diff --git a/contrib/python/multidict/multidict/_multilib/hashtable.h b/contrib/python/multidict/multidict/_multilib/hashtable.h
index 82019f9ebd9..ece41c43fa8 100644
--- a/contrib/python/multidict/multidict/_multilib/hashtable.h
+++ b/contrib/python/multidict/multidict/_multilib/hashtable.h
@@ -1019,7 +1019,7 @@ md_pop_one(MultiDictObject *md, PyObject *key, PyObject **ret)
goto fail;
}
}
-
+ Py_DECREF(identity);
ASSERT_CONSISTENT(md, false);
return 0;
fail:
diff --git a/contrib/python/multidict/tests/isolated/multidict_pop.py b/contrib/python/multidict/tests/isolated/multidict_pop.py
index 89fcce11c7b..7fc9c2db56c 100644
--- a/contrib/python/multidict/tests/isolated/multidict_pop.py
+++ b/contrib/python/multidict/tests/isolated/multidict_pop.py
@@ -5,8 +5,9 @@
# of memory leaks can be prevented in the future.
import gc
-import psutil
import os
+
+import psutil
from multidict import MultiDict
@@ -20,7 +21,7 @@ process = psutil.Process(os.getpid())
def get_memory_usage() -> int:
memory_info = process.memory_info()
- return memory_info.rss / (1024 * 1024) # type: ignore[no-any-return]
+ return memory_info.rss // (1024 * 1024)
initial_memory_usage = get_memory_usage()
@@ -62,6 +63,16 @@ def _test_popone() -> None:
check_for_leak()
+# SEE: https://github.com/aio-libs/multidict/issues/1273
+def _test_pop_with_default() -> None:
+ # XXX: mypy wants an annotation so the only
+ # thing we can do here is pass the headers along.
+ result = MultiDict(headers)
+ for i in range(1_000_000):
+ result.pop(f"missing_key_{i}", None)
+ check_for_leak()
+
+
def _test_del() -> None:
for _ in range(10):
for _ in range(100):
@@ -75,6 +86,7 @@ def _run_isolated_case() -> None:
_test_pop()
_test_popall()
_test_popone()
+ _test_pop_with_default()
_test_del()
diff --git a/contrib/python/multidict/ya.make b/contrib/python/multidict/ya.make
index 4e447c884d0..c814f5f2278 100644
--- a/contrib/python/multidict/ya.make
+++ b/contrib/python/multidict/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(6.7.0)
+VERSION(6.7.1)
LICENSE(Apache-2.0)