diff --git a/CHANGES.rst b/CHANGES.rst index 5429e1381..8e59e2f6a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -14,6 +14,46 @@ Changelog .. towncrier release notes start +6.5.0 +===== + +*(2025-06-17)* + + +Features +-------- + +- 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`. + + +Contributor-facing changes +-------------------------- + +- 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`. + + +---- + + 6.4.4 ===== diff --git a/CHANGES/1128.feature b/CHANGES/1128.feature deleted file mode 100644 index 4bfb0b708..000000000 --- a/CHANGES/1128.feature +++ /dev/null @@ -1,10 +0,0 @@ -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. diff --git a/CHANGES/1167.contrib.rst b/CHANGES/1167.contrib.rst deleted file mode 100644 index c704a29da..000000000 --- a/CHANGES/1167.contrib.rst +++ /dev/null @@ -1,5 +0,0 @@ -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. diff --git a/multidict/__init__.py b/multidict/__init__.py index 5bbd09973..0005c5ee3 100644 --- a/multidict/__init__.py +++ b/multidict/__init__.py @@ -22,7 +22,7 @@ "getversion", ) -__version__ = "6.4.5.dev0" +__version__ = "6.5.0" if TYPE_CHECKING or not USE_EXTENSIONS: