- 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. (:issue:`798`)
- Declared the official support for Python 3.11 — by :user:`mlegner`. (:issue:`872`)
- Revert :issue:`644`, restore type annotations to as-of 5.2.0 version. (:issue:`688`)
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. (:issue:`682`)
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. (:issue:`681`)
- 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`)
- Dropped Python 3.6 support (:issue:`680`)
- 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. (:issue:`629`)
- 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. (:issue:`620`)
- Supported
GenericAliases
(MultiDict[str]
) for Python 3.9+ :issue:`553`
- Synchronized the declared supported Python versions in
setup.py
with actually supported and tested ones. :issue:`552`
- Provided x86 Windows wheels :issue:`550`
- Provided wheels for
aarch64
,i686
,ppc64le
,s390x
architectures on Linux as well asx86_64
. :issue:`500` - Provided wheels for Python 3.9. :issue:`534`
- Dropped Python 3.5 support; Python 3.6 is the minimal supported Python version.