Changelog¶
6.0.4 (2022-12-24)¶
Bugfixes¶
Fixed a type annotations regression introduced in v6.0.2 under Python versions <3.10. It was caused by importing certain types only available in newer versions. (#798)
6.0.3 (2022-12-03)¶
Features¶
6.0.2 (2022-01-24)¶
Bugfixes¶
6.0.1 (2022-01-23)¶
Bugfixes¶
Restored back
MultiDict
,CIMultiDict
,MultiDictProxy
, andCIMutiDictProxy
generic type arguments; they are parameterized by value type, but the key type is fixed by container class.MultiDict[int]
meansMutableMultiMapping[str, int]
. The key type ofMultiDict
is alwaysstr
, while all str-like keys are accepted by API and converted tostr
internally.The same is true for
CIMultiDict[int]
which meansMutableMultiMapping[istr, int]
. str-like keys are accepted but converted toistr
internally. (#682)
6.0.0 (2022-01-22)¶
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 toget*()
,setdefault()
, andpop*()
methods. (#681)
Bugfixes¶
Deprecations and Removals¶
Dropped Python 3.6 support (#680)
Misc¶
5.2.0 (2021-10-03)¶
Features¶
Added support Python 3.10
Started shipping platform-specific wheels with the
musl
tag targeting typical Alpine Linux runtimes.Started shipping platform-specific arm64 wheels for Apple Silicon. (#629)
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. (#620)
5.1.0 (2020-12-03)¶
Features¶
Supported
GenericAliases
(MultiDict[str]
) for Python 3.9+ #553
Bugfixes¶
Synchronized the declared supported Python versions in
setup.py
with actually supported and tested ones. #552
5.0.1 (2020-11-14)¶
Bugfixes¶
Provided x86 Windows wheels #550
5.0.0 (2020-10-12)¶
Features¶
Removal¶
Dropped Python 3.5 support; Python 3.6 is the minimal supported Python version.
Misc¶
4.7.6 (2020-05-15)¶
Bugfixes¶
Fixed an issue with some versions of the
wheel
dist failing because of being unable to detect the license file. #481
4.7.5 (2020-02-21)¶
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. #457
Fixed comparing with mapping: an exception raised in the
__len__()
method caused raising a SyntaxError. #459Fixed comparing with mapping: all exceptions raised in the
__getitem__()
method were silenced. #460
4.7.4 (2020-01-11)¶
Bugfixes¶
Multidict 4.7.3 (2019-12-30)¶
Features¶
Bugfixes¶
Fix crashes in
popone
/popall
when default is returned. #450
Improved Documentation¶
Corrected the documentation for
MultiDict.extend()
#446
4.7.2 (2019-12-20)¶
Bugfixes¶
4.7.1 (2019-12-12)¶
Bugfixes¶
Improved Documentation¶
4.7.0 (2019-12-10)¶
Features¶
Replace Cython optimization with pure C #249
Implement
__length_hint__()
for iterators #310Support the MultiDict[str] generic specialization in the runtime. #392
Embed pair_list_t structure into MultiDict Python object #395
Embed multidict pairs for small dictionaries to amortize the memory usage. #396
Support weak references to C Extension classes. #399
Add docstrings to provided classes. #400
Merge
multidict._istr
back withmultidict._multidict
. #409
Bugfixes¶
4.6.1 (2019-11-21)¶
Bugfixes¶
Fix PyPI link for GitHub Issues badge. #391
4.6.0 (2019-11-20)¶
Bugfixes¶
4.5.2 (2018-11-28)¶
Fix another memory leak introduced by 4.5.0 release #307
4.5.1 (2018-11-22)¶
Fix a memory leak introduced by 4.5.0 release #306
4.5.0 (2018-11-19)¶
Multidict views ported from Cython to C extension #275
4.4.2 (2018-09-19)¶
Restore Python 3.4 support #289
4.4.1 (2018-09-17)¶
4.4.0 (2018-07-04)¶
Rewrite C implementation to use C pair list.
Fix update order when both
arg
andkwargs
are used.
4.3.1 (2018-05-06)¶
Fix a typo in multidict stub file.
4.3.0 (2018-05-06)¶
Polish type hints, make multidict type definitions generic.
4.2.0 (2018-04-15)¶
Publish
py.typed
flag for type hinting analyzers (mypy
etc).
4.1.0 (2018-01-28)¶
Fix key casing in Pure Python implementation of
CIMultiDict
#202
4.0.0 (2018-01-14)¶
Accept multiple keys in
MultiDict.update()
andCIMultiDict.update()
#199
3.3.2 (2017-11-02)¶
Fix tarball (again)
3.3.1 (2017-11-01)¶
Include .c files in tarball #181
3.3.0 (2017-10-15)¶
3.2.0 (2017-09-17)¶
Fix pickling #134
Fix equality check when other contains more keys #124
Fix
CIMultiDict
copy #107
3.1.3 (2017-07-14)¶
Fix build
3.1.2 (2017-07-14)¶
Fix type annotations
3.1.1 (2017-07-09)¶
3.1.0 (2017-06-25)¶
Raise
RuntimeError
ondict
iterations if the dict was changed (#99)Update
__init__.pyi
signatures
3.0.0 (2017-06-21)¶
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
Implement
.popall(key[, default])
#84Implement dict’s version #86
Proxies are not pickable anymore #77
2.1.7 (2017-05-29)¶
Fix import warning on Python 3.6 #79
2.1.6 (2017-05-27)¶
Rebuild the library for fixing missing
__spec__
attribute #79
2.1.5 (2017-05-13)¶
Build Python 3.6 binary wheels
2.1.4 (2016-12-1)¶
Remove
LICENSE
filename extension @MANIFEST.in
file #31
2.1.3 (2016-11-26)¶
Add a fastpath for multidict extending by multidict
2.1.2 (2016-09-25)¶
Fix
CIMultiDict.update
for case of acceptingistr
2.1.1 (2016-09-22)¶
Fix
CIMultiDict
constructor for case of acceptingistr
#11
2.1.0 (2016-09-18)¶
Allow to create proxy from proxy
Add type hints (PEP 484)
2.0.1 (2016-08-02)¶
Don’t crash on
{} - MultiDict().keys()
and similar operations #6
2.0.0 (2016-07-28)¶
1.2.2 (2016-08-02)¶
Don’t crash on
{} - MultiDict().keys()
and similar operations #6
1.2.1 (2016-07-21)¶
Don’t expose
multidict.__version__
1.2.0 (2016-07-16)¶
Make
upstr(upstr('abc'))
much faster
1.1.0 (2016-07-06)¶
1.0.3 (2016-03-24)¶
Add missing MANIFEST.in
1.0.2 (2016-03-24)¶
Fix setup build
1.0.0 (2016-02-19)¶
Initial implementation