6.0.2 (2022-01-24)
==================
Bugfixes
--------
- Revert :issue:`644`, restore type annotations to as-of 5.2.0 version. (:issue:`688`)
6.0.1 (2022-01-23)
==================
Bugfixes
--------
- Restored back ``MultiDict``, ``CIMultiDict``, ``MultiDictProxy``, and
``CIMutiDictProxy`` generic type arguments; they are parameterized by value type, but the
key type is fixed by container class.
``MultiDict[int]`` means ``MutableMultiMapping[str, int]``. The key type of
``MultiDict`` is always ``str``, while all str-like keys are accepted by API and
converted to ``str`` internally.
The same is true for ``CIMultiDict[int]`` which means ``MutableMultiMapping[istr,
int]``. str-like keys are accepted but converted to ``istr`` internally. (:issue:`682`)
Features
--------
- Use ``METH_FASTCALL`` where it makes sense.
``MultiDict.add()`` is 2.2 times faster now, ``CIMultiDict.add()`` is 1.5 times faster.
The same boost is applied to ``get*()``, ``setdefault()``, and ``pop*()`` methods. (:issue:`681`)
Bugfixes
--------
- Fixed type annotations for keys of multidict mapping classes. (:issue:`644`)
- Support Multidict[int] for pure-python version.
``__class_getitem__`` is already provided by C Extension, making it work with the pure-extension too. (:issue:`678`)
Deprecations and Removals
-------------------------
- Dropped Python 3.6 support (:issue:`680`)
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (some may be only fetched
conditionally):
./databases/cstore/distinfo D6.data.ros.gz
./databases/cstore/distinfo cstore0.2.tar.gz
./databases/cstore/distinfo data4.tar.gz
5.2.0 (2021-10-03)
=====================
Features
- 1. Added support Python 3.10
2. Started shipping platform-specific wheels with the ``musl`` tag targeting typical Alpine Linux runtimes.
3. Started shipping platform-specific arm64 wheels for Apple Silicon.
Bugfixes
- Fixed pure-python implementation that used to raise "Dictionary changed during iteration" error when iterated view (``.keys()``, ``.values()`` or ``.items()``) was created before the dictionary's content change.
5.1.0 (2020-12-03)
==================
Features
--------
- Support ``GenericAliases`` (``MultiDict[str]``) for Python 3.9+
Bugfixes
--------
- Synchronize the declared supported Python versions in ``setup.py`` with actually supported and tested ones.
Upstream changes:
5.0.0 (2020-10-12)
Features
Provide wheels for aarch64, i686, ppc64le, s390x architectures on Linux as well as x86_64. #500
Provide wheels for Python 3.9. #534
Removal
Drop Python 3.5 support; Python 3.6 is the minimal supported Python version.
4.7.5:
Bugfixes
- Fixed creating and updating of MultiDict from a sequence of pairs and keyword arguments. Previously passing a list argument modified it inplace, and other sequences caused an error.
- Fixed comparing with mapping: an exception raised in the `__len__` method caused raising a SyntaxError.
- Fixed comparing with mapping: all exceptions raised in the `__getitem__` method were silenced.
4.7.3:
Features
- Implement ``__sizeof__`` function to correctly calculate all internal structures size.
- Expose ``getversion()`` function.
Bugfixes
- Fix crashes in ``popone``/``popall`` when default is returned.
Improved Documentation
- Corrected the documentation for ``MultiDict.extend()``
4.7.2:
Bugfixes
- Fix crashing when multidict is used pyinstaller
- Fix typing for `CIMultiDict.copy`
- Fix memory leak in ``MultiDict.copy()``
4.7.1:
Bugfixes
- `CIMultiDictProxy.copy` return object type `multidict._multidict.CIMultiDict`
- Make `CIMultiDict` subclassable again
- Fix regression, multidict can be constructed from arbitrary iterable of pairs again.
- `CIMultiDict.add` may be called with keyword arguments
Improved Documentation
- Mention ``MULTIDICT_NO_EXTENSIONS`` environment variable in docs.
- Document the fact that ``istr`` preserves the casing of argument untouched but uses internal lower-cased copy for keys comparison.
4.7.0:
Features
- Replace Cython optimization with pure C
- Implement ``__length_hint__()`` for iterators
- Support the MultiDict[str] generic specialization in the runtime.
- Embed pair_list_t structure into MultiDict Python object
- Embed multidict pairs for small dictionaries to amortize the memory usage.
- Support weak references to C Extension classes.
- Add docstrings to provided classes.
- Merge ``multidict._istr`` back with ``multidict._multidict``.
Bugfixes
- Explicitly call ``tp_free`` slot on deallocation.
- Return class from __class_getitem__ to simplify subclassing
occurred more than once in the container.
HTTP Headers and URL query string require specific data structure: multidict.
It behaves mostly like a regular dict but it may have several values for the
same key and preserves insertion ordering.