multidict¶
Multidicts are useful for working with HTTP headers, URL query args etc.
The code was extracted from aiohttp library.
Introduction¶
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.
The key is str
(or istr
for case-insensitive
dictionaries).
multidict
has four multidict classes:
MultiDict
, MultiDictProxy
,
CIMultiDict
and CIMultiDictProxy
.
Immutable proxies (MultiDictProxy
and
CIMultiDictProxy
) provide a dynamic view for the
proxied multidict, the view reflects underlying collection changes. They
implement the Mapping
interface.
Regular mutable (MultiDict
and
CIMultiDict
) classes implement
MutableMapping
and allows to change
their own content.
Case insensitive (CIMultiDict
and
CIMultiDictProxy
) ones assume the keys
are case insensitive, e.g.:
>>> dct = CIMultiDict(key='val')
>>> 'Key' in dct
True
>>> dct['Key']
'val'
Keys should be either str
or istr
instance.
The library has optional C Extensions for sake of speed.
Library Installation¶
$ pip install multidict
The library is Python 3 only!
PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install
multidict
on another operation system (or Alpine Linux inside a Docker) the
Tarball will be used to compile the library from sources. It requires C compiler and
Python headers installed.
To skip the compilation please use the MULTIDICT_NO_EXTENSIONS
environment variable, e.g.:
$ MULTIDICT_NO_EXTENSIONS=1 pip install multidict
Please note, Pure Python (uncompiled) version is about 20-50 times slower depending on the usage scenario!!!
Source code¶
The project is hosted on GitHub
Please file an issue on the bug tracker if you have found a bug or have some suggestion in order to improve the library.
Contents¶
- Reference
- MultiDict
MultiDict
MultiDict.len()
MultiDict.d()
MultiDict.iter()
MultiDict.add()
MultiDict.clear()
MultiDict.copy()
MultiDict.getone()
MultiDict.getall()
MultiDict.get()
MultiDict.keys()
MultiDict.items()
MultiDict.values()
MultiDict.popone()
MultiDict.pop()
MultiDict.popall()
MultiDict.popitem()
MultiDict.setdefault()
MultiDict.extend()
MultiDict.merge()
MultiDict.update()
- CIMultiDict
- MultiDictProxy
- CIMultiDictProxy
- Version
- istr
- Abstract Base Classes
- Typing
- Environment variables
- MultiDict
- Benchmarks
- Changelog
- To be included in v6.6.3 (if present)
- Released versions
- 6.6.3
- 6.6.2
- 6.6.1
- 6.6.0
- 6.5.1
- 6.5.0
- 6.4.4
- 6.4.3
- 6.4.2
- 6.4.1
- 6.4.0
- 6.3.2
- 6.3.1
- 6.3.0
- 6.2.0
- 6.1.0 (2024-09-09)
- 6.0.5 (2024-02-01)
- 6.0.4 (2022-12-24)
- 6.0.3 (2022-12-03)
- 6.0.2 (2022-01-24)
- 6.0.1 (2022-01-23)
- 6.0.0 (2022-01-22)
- 5.2.0 (2021-10-03)
- 5.1.0 (2020-12-03)
- 5.0.1 (2020-11-14)
- 5.0.0 (2020-10-12)