- Fixed an issue with some versions of the
wheel
dist failing because of being unable to detect the license file. :issue:`481`
- Fixed creating and updating of :class:`~multidict.MultiDict` from a sequence of pairs and keyword arguments. Previously passing a list argument modified it inplace, and other sequences caused an error. :issue:`457`
- Fixed comparing with mapping: an exception raised in the :py:meth:`~object.__len__` method caused raising a SyntaxError. :issue:`459`
- Fixed comparing with mapping: all exceptions raised in the :py:meth:`~object.__getitem__` method were silenced. :issue:`460`
MultiDict.iter
fix memory leak when used iterator over :py:class:`~multidict.MultiDict` instance. :issue:`452`
- Implement
__sizeof__
function to correctly calculate all internal structures size. :issue:`444` - Expose
getversion()
function. :issue:`451`
- Fix crashes in
popone
/popall
when default is returned. :issue:`450`
- Corrected the documentation for
MultiDict.extend()
:issue:`446`
- Fixed crashing when multidict is used pyinstaller :issue:`432`
- Fixed typing for :py:meth:`CIMultiDict.copy() <multidict.MultiDict.copy>` :issue:`434`
- Fixed a memory leak in :py:meth:`MultiDict.copy() <multidict.MultiDict.copy>` :issue:`443`
- :py:meth:`CIMultiDictProxy.copy() <multidict.MultiDictProxy.copy>` fixed to return a case-insensitive :py:class:`multidict._multidict.CIMultiDict() <multidict.MultiDict>` object. :issue:`427`
- Made :py:class:`~multidict.CIMultiDict` subclassable again. :issue:`416`
- Fixed a regression, :class:`multidict.MultiDict` can be constructed from an arbitrary iterable of pairs again. :issue:`418`
- :py:meth:`CIMultiDict.add() <multidict.MultiDict.add>` may be called with keyword arguments now. :issue:`421`
- Mention
MULTIDICT_NO_EXTENSIONS
environment variable in docs. :issue:`393` - Document the fact that
istr
preserves the casing of argument untouched but uses internal lower-cased copy for keys comparison. :issue:`419`
- Replace Cython optimization with pure C :issue:`249`
- Implement
__length_hint__()
for iterators :issue:`310` - Support the MultiDict[str] generic specialization in the runtime. :issue:`392`
- Embed pair_list_t structure into MultiDict Python object :issue:`395`
- Embed multidict pairs for small dictionaries to amortize the memory usage. :issue:`396`
- Support weak references to C Extension classes. :issue:`399`
- Add docstrings to provided classes. :issue:`400`
- Merge
multidict._istr
back withmultidict._multidict
. :issue:`409`
- Explicitly call
tp_free
slot on deallocation. :issue:`407` - Return class from __class_getitem__ to simplify subclassing :issue:`413`
- Fix PyPI link for GitHub Issues badge. :issue:`391`
- Fix GC object tracking. :issue:`314`
- Preserve the case of istr strings. :issue:`374`
- Generate binary wheels for Python 3.8.
- Fix another memory leak introduced by 4.5.0 release :issue:`307`
- Fix a memory leak introduced by 4.5.0 release :issue:`306`
- Multidict views ported from Cython to C extension :issue:`275`
- Restore Python 3.4 support :issue:`289`
- Fix type annotations :issue:`283`)
- Allow to install the library on systems without compilation toolset :issue:`281`
- Rewrite C implementation to use C pair list.
- Fix update order when both
arg
andkwargs
are used.
- Fix a typo in multidict stub file.
- Polish type hints, make multidict type definitions generic.
- Publish
py.typed
flag for type hinting analyzers (mypy
etc).
- Fix key casing in Pure Python implementation of :py:class:`~multidict.CIMultiDict` :issue:`202`
- Started accepting multiple keys in :py:meth:`MultiDict.update() <multidict.MultiDict.update>` and :py:meth:`CIMultiDict.update() <multidict.MultiDict.update>`. :issue:`199`
- Fix tarball (again)
- Include .c files in tarball :issue:`181`
- Introduce abstract base classes :issue:`102`
- Publish OSX binary wheels :issue:`153`
- Fix pickling :issue:`134`
- Fix equality check when other contains more keys :issue:`124`
- Fix :py:class:`CIMultiDict <multidict.CIMultiDict>` copy :issue:`107`
- Fix build
- Fix type annotations
- Remove memory leak in :py:func:`istr <multidict.istr>` implementation :issue:`105`
- Raise :py:exc:`RuntimeError` on :py:class:`dict` iterations if the dict was changed (:issue:`99`)
- Update
__init__.pyi
signatures
Refactor internal data structures: main dict operations are about 100% faster now.
Preserve order on multidict updates
Updates are
md[key] = val
andmd.update(...)
calls.Now the last entry is replaced with new key/value pair, all previous occurrences are removed.
If key is not present in dictionary the pair is added to the end
Force keys to :py:class:`str` instances :issue:`88`
Implement :py:func:`.popall(key[, default]) <multidict.MultiDict.popall>` :issue:`84`
:py:func:`.pop() <multidict.MultiDict.pop>` removes only first occurrence, :py:func:`.popone() <multidict.MultiDict.popone>` added :issue:`92`
Implement dict's version :issue:`86`
Proxies are not pickable anymore :issue:`77`
- Fix import warning on Python 3.6 :issue:`79`
- Rebuild the library for fixing missing
__spec__
attribute :issue:`79`
- Build Python 3.6 binary wheels
- Remove
LICENSE
filename extension @MANIFEST.in
file :issue:`31`
- Add a fastpath for multidict extending by multidict
- Fixed :py:func:`CIMultiDict.update() <multidict.MultiDict.update>` for case of accepting :py:class:`~multidict.istr`.
- Fixed the :py:class:`CIMultiDict <multidict.CIMultiDict>` constructor for the case of accepting :py:class:`~multidict.istr`. :issue:`11`
- Allow to create proxy from proxy
- Add type hints (PEP 484)
- Don't crash on
{} - MultiDict().keys()
and similar operations :issue:`6`
- Switch from uppercase approach for case-insensitive string to :py:meth:`str.title`. :issue:`5`
- Deprecate
multidict.upstr()
class in favor of :py:class:`~multidict.istr` alias.
- Don't crash on
{} - MultiDict().keys()
and similar operations :issue:`6`
- Don't expose
multidict.__version__
- Make
upstr(upstr('abc'))
much faster
- Don't double-iterate during :py:class:`MultiDict <multidict.MultiDict>` initialization :issue:`3`
- Fixed :py:meth:`CIMultiDict.pop() <multidict.MultiDict.pop>`: it is case insensitive now. :issue:`1`
- Provide manylinux wheels as well as Windows ones
- Add missing MANIFEST.in
- Fix setup build
- Initial implementation