summaryrefslogtreecommitdiffstats
path: root/contrib/python/multidict
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-10-21 10:58:31 +0300
committerrobot-piglet <[email protected]>2025-10-21 11:28:49 +0300
commit89b6a9fcaf345dba54c9041fa0b404f1fb4eb64d (patch)
tree4fd38da7d2f1352562290c4f136e2c5f06d6aea3 /contrib/python/multidict
parentf7a051493b9244fe7df62b1d0f9b559f1713df10 (diff)
Intermediate changes
commit_hash:7559344da5c2facb873c98b244b75db040397437
Diffstat (limited to 'contrib/python/multidict')
-rw-r--r--contrib/python/multidict/.dist-info/METADATA3
-rw-r--r--contrib/python/multidict/multidict/__init__.py17
-rw-r--r--contrib/python/multidict/tests/isolated/multidict_pop.py4
-rw-r--r--contrib/python/multidict/tests/test_istr.py15
-rw-r--r--contrib/python/multidict/ya.make2
5 files changed, 21 insertions, 20 deletions
diff --git a/contrib/python/multidict/.dist-info/METADATA b/contrib/python/multidict/.dist-info/METADATA
index b136b6cf70c..1ab8dd6468c 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.6.4
+Version: 6.7.0
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
@@ -24,6 +24,7 @@ Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
diff --git a/contrib/python/multidict/multidict/__init__.py b/contrib/python/multidict/multidict/__init__.py
index bd03149defc..a688932e52f 100644
--- a/contrib/python/multidict/multidict/__init__.py
+++ b/contrib/python/multidict/multidict/__init__.py
@@ -1,4 +1,5 @@
-"""Multidict implementation.
+"""
+Multidict implementation.
HTTP Headers and URL query string require specific data structure:
multidict. It behaves mostly like a dict but it can have
@@ -11,18 +12,18 @@ from ._abc import MultiMapping, MutableMultiMapping
from ._compat import USE_EXTENSIONS
__all__ = (
- "MultiMapping",
- "MutableMultiMapping",
- "MultiDictProxy",
+ "CIMultiDict",
"CIMultiDictProxy",
"MultiDict",
- "CIMultiDict",
- "upstr",
- "istr",
+ "MultiDictProxy",
+ "MultiMapping",
+ "MutableMultiMapping",
"getversion",
+ "istr",
+ "upstr",
)
-__version__ = "6.6.4"
+__version__ = "6.7.0"
if TYPE_CHECKING or not USE_EXTENSIONS:
diff --git a/contrib/python/multidict/tests/isolated/multidict_pop.py b/contrib/python/multidict/tests/isolated/multidict_pop.py
index daced359e65..89fcce11c7b 100644
--- a/contrib/python/multidict/tests/isolated/multidict_pop.py
+++ b/contrib/python/multidict/tests/isolated/multidict_pop.py
@@ -23,13 +23,15 @@ def get_memory_usage() -> int:
return memory_info.rss / (1024 * 1024) # type: ignore[no-any-return]
+initial_memory_usage = get_memory_usage()
+
keys = [f"X-Any-{i}" for i in range(100)]
headers = {key: key * 2 for key in keys}
def check_for_leak() -> None:
trim_ram()
- usage = get_memory_usage()
+ usage = get_memory_usage() - initial_memory_usage
assert usage < 50, f"Memory leaked at: {usage} MB"
diff --git a/contrib/python/multidict/tests/test_istr.py b/contrib/python/multidict/tests/test_istr.py
index f02a2359333..029f579b339 100644
--- a/contrib/python/multidict/tests/test_istr.py
+++ b/contrib/python/multidict/tests/test_istr.py
@@ -5,7 +5,6 @@ from typing import Callable, Type
import pytest
IMPLEMENTATION = getattr(sys, "implementation") # to suppress mypy error
-GIL_ENABLED = getattr(sys, "_is_gil_enabled", lambda: True)()
def test_ctor(case_insensitive_str_class: Type[str]) -> None:
@@ -64,16 +63,14 @@ def create_istrs(case_insensitive_str_class: Type[str]) -> Callable[[], None]:
IMPLEMENTATION.name != "cpython",
reason="PyPy has different GC implementation",
)
- not GIL_ENABLED,
- reason="free threading has different GC implementation",
-)
-def test_leak(create_istrs: Callable[[], None]) -> None:
+def test_leak(
+ create_istrs: Callable[[], None], case_insensitive_str_class: Type[str]
+) -> None:
gc.collect()
- cnt = len(gc.get_objects())
for _ in range(10000):
create_istrs()
gc.collect()
- cnt2 = len(gc.get_objects())
- assert abs(cnt - cnt2) < 10 # on other GC impls these numbers are not equal
+ assert not any(
+ isinstance(obj, case_insensitive_str_class) for obj in gc.get_objects()
+ )
diff --git a/contrib/python/multidict/ya.make b/contrib/python/multidict/ya.make
index aad90e18cfb..4e447c884d0 100644
--- a/contrib/python/multidict/ya.make
+++ b/contrib/python/multidict/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(6.6.4)
+VERSION(6.7.0)
LICENSE(Apache-2.0)