Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-multidict for
openSUSE:Factory checked in at 2026-04-13 23:18:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-multidict (Old)
and /work/SRC/openSUSE:Factory/.python-multidict.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-multidict"
Mon Apr 13 23:18:12 2026 rev:23 rq:1346158 version:6.7.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-multidict/python-multidict.changes
2024-10-30 17:29:53.296832030 +0100
+++
/work/SRC/openSUSE:Factory/.python-multidict.new.21863/python-multidict.changes
2026-04-13 23:18:44.103748555 +0200
@@ -1,0 +2,280 @@
+Tue Apr 7 22:42:43 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 6.7.1:
+ * Fixed slow memory leak caused by identity by adding Py_DECREF
+ to identity value before leaving md_pop_one on success -- by
+ :user:`Vizonex`. Related issues and pull requests on GitHub:
+ :issue:`1284`.
+ * Updated tests and added CI for CPython 3.14 -- by
+ :user:`kumaraditya303`. Related issues and pull requests on
+ GitHub: :issue:`1235`.
+ * Fixed MutliDict & CIMultiDict memory leak when deleting
+ values or clearing them -- by :user:`Vizonex` Related issues
+ and pull requests on GitHub: :issue:`1233`.
+ * The type preciseness coverage report generated by MyPy is now
+ uploaded to Coveralls and will not be included in the Codecov
+ views going forward -- by :user:`webknjaz`. Related issues
+ and pull requests on GitHub: :issue:`1122`, :issue:`1231`.
+ * Added memory leak test for popping or deleting attributes
+ from a multidict to prevent future issues or bogus claims. --
+ by :user:`Vizonex` Related issues and pull requests on
+ GitHub: :issue:`1233`.
+ * Fixed inconsistencies generated by the C implementation of
+ _md_shrink() which might later lead to assertion failures and
+ crash -- by :user:`Romain-Geissler-1A`. Related issues and
+ pull requests on GitHub: :issue:`1229`.
+ * Fixed a memory corruption issue in the C implementation of
+ _md_shrink() that could lead to segmentation faults and data
+ loss when items were deleted from a
+ :class:`~multidict.MultiDict`. The issue was an edge case in
+ the pointer arithmetic during the compaction phase -- by
+ :user:`bdraco`. Related issues and pull requests on GitHub:
+ :issue:`1221`, :issue:`1222`.
+ * Fixed format string compilation errors in debug builds on
+ 32-bit platforms by using portable %zd format specifiers for
+ Py_ssize_t values instead of %ld -- by :user:`bdraco`.
+ Related issues and pull requests on GitHub: :issue:`1225`,
+ :issue:`1226`.
+ * Re-enabled 32-bit Linux wheel builds that were disabled by
+ default in cibuildwheel 3.0.0 -- by :user:`bdraco`. Related
+ issues and pull requests on GitHub: :issue:`1225`,
+ :issue:`1227`.
+ * If :meth:`multidict.MultiDict.extend`,
+ :meth:`multidict.MultiDict.merge`, or
+ :meth:`multidict.MultiDict.update` raises an exception, now
+ the multidict internal state is correctly restored. Patch by
+ :user:`asvetlov`. Related issues and pull requests on GitHub:
+ :issue:`1215`.
+ * Fixed setuptools deprecation warning about the license
+ specification -- by :user:`asvetlov`. Related issues and pull
+ requests on GitHub: :issue:`1216`.
+ * Fix compiler warnings and convert them to errors -- by
+ :user:`asvetlov`. Related issues and pull requests on GitHub:
+ :issue:`1217`.
+ * Added :meth:`multidict.MultiDict.merge` which copies all
+ items from arguments if its key not exist in the dictionary
+ -- by :user:`asvetlov`. Related issues and pull requests on
+ GitHub: :issue:`292`.
+ * Stopped reallocating memory for the internal htkeys_t
+ structure when inserting new items if the multidict has
+ deleted items and it could be collapsed in-place. Removal of
+ malloc()/free() improves the performance slightly. The change
+ affects C implementation only, pure Python code is not
+ changed. Patch by :user:`asvetlov`. Related issues and pull
+ requests on GitHub: :issue:`1200`.
+ * C implementation of :class:`multidict.MultiDict.getall` now
+ is slightly faster if it returns nothing -- by
+ :user:`asvetlov`. Related issues and pull requests on GitHub:
+ :issue:`1212`.
+ * Replaced docstring for :meth:`multidict.MultiDict.update` to
+ don't use RST/markdown markup. Related issues and pull
+ requests on GitHub: :issue:`1203`.
+ * Improved documentation for :meth:`multidict.MultiDict.extend`
+ and :meth:`multidict.MultiDict.update` -- by
+ :user:`asvetlov`. Related issues and pull requests on GitHub:
+ :issue:`1205`.
+ * When building wheels, the source distribution is now passed
+ directly to the cibuildwheel invocation -- by
+ :user:`webknjaz`. Related issues and pull requests on GitHub:
+ :issue:`1199`.
+ * Set up PYTHONHASHSEED for benchmarks execution to make
+ measured times stable -- by :user:`asvetlov`. Related issues
+ and pull requests on GitHub: :issue:`1202`.
+ * Fixed a bug in C implementation when multidict is resized and
+ it has deleted slots. The bug was introduced by multidict
+ 6.5.0 release. Patch by :user:`asvetlov`. Related issues and
+ pull requests on GitHub: :issue:`1195`.
+ * A pair of code formatters for Python and C have been
+ configured in the pre-commit tool. Related issues and pull
+ requests on GitHub: :issue:`1123`.
+ * Shorted fixture parametrization ids. For example,
+ test_keys_view_xor[case-insensitive-pure-python-module]
+ becomes test_keys_view_xor[ci-py] -- by :user:`asvetlov`.
+ Related issues and pull requests on GitHub: :issue:`1192`.
+ * The :file:`reusable-cibuildwheel.yml` workflow has been
+ refactored to be more generic and :file:`ci-cd.yml` now holds
+ all the configuration toggles -- by :user:`webknjaz`. Related
+ issues and pull requests on GitHub: :issue:`1193`.
+ * Replace internal implementation from an array of items to
+ hash table. algorithmic complexity for lookups is switched
+ from O(N) to O(1). The hash table is very similar to
+ :class:`dict` from CPython but it allows keys duplication.
+ 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:`~multidict.MultiDict.add`
+ and :class:`~multidict.MultiDict.extend` are 25-50% slower
+ now. We consider it as acceptable because the lookup is much
+ more common operation that addition for the library domain.
+ Related issues and pull requests on GitHub: :issue:`1128`.
+ * Builds have been added for arm64 Windows wheels and the
+ reusable-build-wheel.yml template has been modified to allow
+ for an os value (windows-11-arm) which does not end with the
+ -latest postfix. Related issues and pull requests on GitHub:
+ :issue:`1167`.
+ * Fixed a segmentation fault when calling
+ :py:meth:`multidict.MultiDict.setdefault` with a single
+ argument -- by :user:`bdraco`. Related issues and pull
+ requests on GitHub: :issue:`1160`.
+ * Fixed a segmentation fault when attempting to directly
+ instantiate view objects (multidict._ItemsView,
+ multidict._KeysView, multidict._ValuesView) -- by
+ :user:`bdraco`. View objects now raise a proper
+ :exc:`TypeError` with the message "cannot create '...'
+ instances directly" when direct instantiation is attempted.
+ View objects should only be created through the proper
+ methods: :py:meth:`multidict.MultiDict.items`,
+ :py:meth:`multidict.MultiDict.keys`, and
+ :py:meth:`multidict.MultiDict.values`. Related issues and
+ pull requests on GitHub: :issue:`1164`.
+ * :class:`multidict.MultiDictProxy` was refactored to rely only
+ on :class:`multidict.MultiDict` public interface and don't
+ touch any implementation details. Related issues and pull
+ requests on GitHub: :issue:`1150`.
+ * Multidict views were refactored to rely only on
+ :class:`multidict.MultiDict` API and don't touch any
+ implementation details. Related issues and pull requests on
+ GitHub: :issue:`1152`.
+ * Dropped internal _Impl class from pure Python implementation,
+ both pure Python and C Extension follows the same design
+ internally now. Related issues and pull requests on GitHub:
+ :issue:`1153`.
+ * Fixed building the library in debug mode. Related issues and
+ pull requests on GitHub: :issue:`1144`.
+ * Fixed custom PyType_GetModuleByDef() when non-heap type
+ object was passed. Related issues and pull requests on
+ GitHub: :issue:`1147`.
+ * Added the ability to build in debug mode by setting
+ :envvar:`MULTIDICT_DEBUG_BUILD` in the environment -- by
+ :user:`bdraco`. Related issues and pull requests on GitHub:
+ :issue:`1145`.
+ * Fixed a segmentation fault when creating subclassed
+ :py:class:`~multidict.MultiDict` objects on Python < 3.11 --
+ by :user:`bdraco`. The problem first appeared in 6.4.0
+ Related issues and pull requests on GitHub: :issue:`1141`.
+ * Fixed a memory leak creating new :class:`~multidict.istr`
+ objects -- by :user:`bdraco`. The leak was introduced in
+ 6.3.0 Related issues and pull requests on GitHub:
+ :issue:`1133`.
+ * Fixed reference counting when calling
+ :py:meth:`multidict.MultiDict.update` -- by :user:`bdraco`.
+ The leak was introduced in 4.4.0 Related issues and pull
+ requests on GitHub: :issue:`1135`.
+ * Switched C Extension to use heap types and the module state.
+ Related issues and pull requests on GitHub: :issue:`1125`.
+ * Started building armv7l wheels -- by :user:`bdraco`. Related
+ issues and pull requests on GitHub: :issue:`1127`.
+ * Resolved a memory leak by ensuring proper reference count
+ decrementation -- by :user:`asvetlov` and :user:`bdraco`.
+ Related issues and pull requests on GitHub: :issue:`1121`.
+ * Fixed keys not becoming case-insensitive when
+ :class:`multidict.CIMultiDict` is created by passing in a
+ :class:`multidict.MultiDict` -- by :user:`bdraco`. Related
+ issues and pull requests on GitHub: :issue:`1112`.
+ * Fixed the pure Python version mutating the original
+ :class:`multidict.MultiDict` when creating a new
+ :class:`multidict.CIMultiDict` from an existing one when
+ keyword arguments are also passed -- by :user:`bdraco`.
+ Related issues and pull requests on GitHub: :issue:`1113`.
+ * Prevented crashing with a segfault when :func:`repr` is
+ called for recursive multidicts and their proxies and views.
+ Related issues and pull requests on GitHub: :issue:`1115`.
+ * Set operations for KeysView and ItemsView of case-insensitive
+ multidicts and their proxies are processed in case-
+ insensitive manner. Related issues and pull requests on
+ GitHub: :issue:`965`.
+ * Rewrote :class:`multidict.CIMultiDict` and it proxy to always
+ return :class:`multidict.istr` keys. istr is derived from
+ :class:`str`, thus the change is backward compatible. The
+ performance boost is about 15% for some operations for C
+ Extension, pure Python implementation have got a visible (15%
+ - 230%) speedup as well. Related issues and pull requests on
+ GitHub: :issue:`1097`.
+ * Fixed a crash when extending a multidict from multidict proxy
+ if C Extensions were used. Related issues and pull requests
+ on GitHub: :issue:`1100`.
+ * Implemented a custom parser for METH_FASTCALL | METH_KEYWORDS
+ protocol -- by :user:`asvetlov`. The patch re-enables fast
+ call protocol in the :py:mod:`multidict` C Extension. Speedup
+ is about 25%-30% for the library benchmarks for Python 3.12+.
+ Related issues and pull requests on GitHub: :issue:`1070`.
+ * The C-extension no longer pre-allocates a Python exception
+ object in lookup-related methods of
+ :py:class:`~multidict.MultiDict` when the passed-in key is
+ not found but default value is provided. Namely, this affects
+ :py:meth:`MultiDict.getone() <multidict.MultiDict.getone>`,
+ :py:meth:`MultiDict.getall() <multidict.MultiDict.getall>`,
+ :py:meth:`MultiDict.get() <multidict.MultiDict.get>`,
+ :py:meth:`MultiDict.pop() <multidict.MultiDict.pop>`,
+ :py:meth:`MultiDict.popone() <multidict.MultiDict.popone>`,
+ and :py:meth:`MultiDict.popall()
+ <multidict.MultiDict.popall>`. Additionally, the
+ :py:class:`~multidict.MultiDict` comparison with regular
+ :py:class:`dict`ionaries is now about 60% faster on Python
+ 3.13+ in the fallback-to-default case. Related issues and
+ pull requests on GitHub: :issue:`1078`.
+ * Implemented __repr__() for C Extension classes in C. The
+ speedup is about 2.5 times. Related issues and pull requests
+ on GitHub: :issue:`1081`.
+ * Made C version of :class:`multidict.istr` pickleable. Related
+ issues and pull requests on GitHub: :issue:`1098`.
+ * Optimized multidict creation and extending / updating if C
+ Extensions are used. The speedup is between 25% and 70%
+ depending on the usage scenario. Related issues and pull
+ requests on GitHub: :issue:`1101`.
+ * :meth:`multidict.MultiDict.popitem` is changed to remove the
+ latest entry instead of the first. It gives O(1) amortized
+ complexity. The standard :meth:`dict.popitem` removes the
+ last entry also. Related issues and pull requests on GitHub:
+ :issue:`1105`.
+ * Started running benchmarks for the pure Python implementation
+ in addition to the C implementation -- by :user:`bdraco`.
+ Related issues and pull requests on GitHub: :issue:`1092`.
+ * The the project-wide Codecov_ metric is no longer reported
+ via GitHub Checks API. The combined value is not very useful
+ because one of the sources (MyPy) cannot reach 100% with the
+ current state of the ecosystem. We may want to reconsider in
+ the future. Instead, we now have two separate “runtime
+ coverage” metrics for library code and tests. They are to be
+ kept at 100% at all times. And the “type coverage” metric
+ will remain advisory, at a lower threshold. The default patch
+ metric check is renamed to “runtime” to better reflect its
+ semantics. This one will also require 100% coverage. Another
+ “typing” patch coverage metric is now reported alongside it.
+ It's considered advisory, just like its project counterpart.
+ When looking at Codecov_, one will likely want to look at
+ MyPy and pytest flags separately. It is usually best to avoid
+ looking at the PR pages that sometimes display combined
+ coverage incorrectly. The change additionally disables the
+ deprecated GitHub Annotations integration in Codecov_.
+ Finally, the badge coloring range now starts at 100%. --
+ by :user:`webknjaz` Related issues and pull requests on
+ GitHub: :issue:`1093`.
+ * Synchronized :file:`pythoncapi_compat.h` with the latest
+ available version. Related issues and pull requests on
+ GitHub: :issue:`1063`.
+ * Moved registering ABCs for C Extension classes from C to
+ Python. Related issues and pull requests on GitHub:
+ :issue:`1083`.
+ * Refactored the internal pair_list implementation. Related
+ issues and pull requests on GitHub: :issue:`1084`.
+ * Implemented views comparison and disjoints in C instead of
+ Python helpers. The performance boost is about 40%. Related
+ issues and pull requests on GitHub: :issue:`1096`.
+ * Fixed in checks throwing an exception instead of returning
+ :data:`False` when testing non-strings. Related issues and
+ pull requests on GitHub: :issue:`1045`.
+ * Fixed a leak when the last accessed module in
+ PyInit__multidict() init is not released. Related issues and
+ pull requests on GitHub: :issue:`1061`.
+ * Implemented support for the free-threaded build of CPython
+ 3.13 -- by :user:`lysnikolaou`. Related issues and pull
+ requests on GitHub: :issue:`1015`.
+ * Started publishing wheels made for the free-threaded build of
+ CPython 3.13 -- by :user:`lysnikolaou`. Related issues and
+ pull requests on GitHub: :issue:`1015`.
+ * Used stricter typing across the code base, resulting in
+ improved typing accuracy across multidict classes. Funded by
+ an NLnet grant. Related issues and pull requests on GitHub:
+ :issue:`1046`.
+
+-------------------------------------------------------------------
Old:
----
multidict-6.1.0.tar.gz
New:
----
multidict-6.7.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-multidict.spec ++++++
--- /var/tmp/diff_new_pack.F8XjZw/_old 2026-04-13 23:18:44.707773462 +0200
+++ /var/tmp/diff_new_pack.F8XjZw/_new 2026-04-13 23:18:44.711773627 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-multidict
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,20 +18,26 @@
%{?sle15_python_module_pythons}
Name: python-multidict
-Version: 6.1.0
+Version: 6.7.1
Release: 0
Summary: Multidict implementation
License: Apache-2.0
URL: https://github.com/aio-libs/multidict
Source:
https://files.pythonhosted.org/packages/source/m/multidict/multidict-%{version}.tar.gz
+BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel}
+BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module pip}
+BuildRequires: %{python_module psutil}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module typing-extensions}
+BuildRequires: %{python_module setuptools >= 40}
+BuildRequires: %{python_module typing-extensions >= 4.1.0 if %python-base <
3.10}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-typing-extensions
+%if 0%{?python_version_nodots} < 310
+Requires: python-typing-extensions >= 4.1.0
+%endif
%python_subpackages
%description
@@ -54,6 +60,8 @@
%check
# remove the extra pytest opts
rm pytest.ini
+# remove codespeed tests
+rm tests/test_*_benchmarks.py
# test_circular_imports try to import from the system and the module
# is installed in the buildroot at this point.
%pytest_arch --ignore tests/test_circular_imports.py
++++++ multidict-6.1.0.tar.gz -> multidict-6.7.1.tar.gz ++++++
++++ 20743 lines of diff (skipped)