- Fixed an issue with some versions of the
wheel
dist failing because of being unable to detect the license file.481
- Fixed creating and updating of
~multidict.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 :py
~object.__len__
method caused raising a SyntaxError.459
- Fixed comparing with mapping: all exceptions raised in the :py
~object.__getitem__
method were silenced.460
MultiDict.iter
fix memory leak when used iterator over :py~multidict.MultiDict
instance.452
- Implement
__sizeof__
function to correctly calculate all internal structures size.444
- Expose
getversion()
function.451
- Fix crashes in
popone
/popall
when default is returned.450
- Corrected the documentation for
MultiDict.extend()
446
- Fixed crashing when multidict is used pyinstaller
432
- Fixed typing for :py
CIMultiDict.copy() <multidict.MultiDict.copy>
434
- Fixed a memory leak in :py
MultiDict.copy() <multidict.MultiDict.copy>
443
- :py
CIMultiDictProxy.copy() <multidict.MultiDictProxy.copy>
fixed to return a case-insensitive :pymultidict._multidict.CIMultiDict() <multidict.MultiDict>
object.427
- Made :py
~multidict.CIMultiDict
subclassable again.416
- Fixed a regression,
multidict.MultiDict
can be constructed from an arbitrary iterable of pairs again.418
- :py
CIMultiDict.add() <multidict.MultiDict.add>
may be called with keyword arguments now.421
- Mention
MULTIDICT_NO_EXTENSIONS
environment variable in docs.393
- Document the fact that
istr
preserves the casing of argument untouched but uses internal lower-cased copy for keys comparison.419
- Replace Cython optimization with pure C
249
- Implement
__length_hint__()
for iterators310
- Support 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
- Explicitly call
tp_free
slot on deallocation.407
- Return class from __class_getitem__ to simplify subclassing
413
- Fix PyPI link for GitHub Issues badge.
391
- Fix GC object tracking.
314
- Preserve the case of istr strings.
374
- Generate binary wheels for Python 3.8.
- Fix another memory leak introduced by 4.5.0 release
307
- Fix a memory leak introduced by 4.5.0 release
306
- Multidict views ported from Cython to C extension
275
- Restore Python 3.4 support
289
- Fix type annotations
283
) - Allow to install the library on systems without compilation toolset
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
~multidict.CIMultiDict
202
- Started accepting multiple keys in :py
MultiDict.update() <multidict.MultiDict.update>
and :pyCIMultiDict.update() <multidict.MultiDict.update>
.199
- Fix tarball (again)
- Include .c files in tarball
181
- Introduce abstract base classes
102
- Publish OSX binary wheels
153
- Fix pickling
134
- Fix equality check when other contains more keys
124
- Fix :py
CIMultiDict <multidict.CIMultiDict>
copy107
- Fix build
- Fix type annotations
- Remove memory leak in :py
istr <multidict.istr>
implementation105
- Raise :py
RuntimeError
on :pydict
iterations if the dict was changed (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
68
- Force keys to :py
str
instances88
- Implement :py
.popall(key[, default]) <multidict.MultiDict.popall>
84
- :py
.pop() <multidict.MultiDict.pop>
removes only first occurrence, :py.popone() <multidict.MultiDict.popone>
added92
- Implement dict's version
86
- Proxies are not pickable anymore
77
- Fix import warning on Python 3.6
79
- Rebuild the library for fixing missing
__spec__
attribute79
- Build Python 3.6 binary wheels
- Remove
LICENSE
filename extension @MANIFEST.in
file31
- Add a fastpath for multidict extending by multidict
- Fixed :py
CIMultiDict.update() <multidict.MultiDict.update>
for case of accepting :py~multidict.istr
.
- Fixed the :py
CIMultiDict <multidict.CIMultiDict>
constructor for the case of accepting :py~multidict.istr
.11
- Allow to create proxy from proxy
- Add type hints (
484
)
- Don't crash on
{} - MultiDict().keys()
and similar operations6
- Switch from uppercase approach for case-insensitive string to :py
str.title
.5
- Deprecate
multidict.upstr()
class in favor of :py~multidict.istr
alias.
- Don't crash on
{} - MultiDict().keys()
and similar operations6
- Don't expose
multidict.__version__
- Make
upstr(upstr('abc'))
much faster
- Don't double-iterate during :py
MultiDict <multidict.MultiDict>
initialization3
- Fixed :py
CIMultiDict.pop() <multidict.MultiDict.pop>
: it is case insensitive now.1
- Provide manylinux wheels as well as Windows ones
- Add missing MANIFEST.in
- Fix setup build
- Initial implementation