1Metadata-Version: 2.1
2Name: multidict
3Version: 5.2.0
4Summary: multidict implementation
5Home-page: https://github.com/aio-libs/multidict
6Author: Andrew Svetlov
7Author-email: andrew.svetlov@gmail.com
8License: Apache 2
9Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby
10Project-URL: CI: GitHub, https://github.com/aio-libs/multidict/actions
11Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/multidict
12Project-URL: Docs: RTD, https://multidict.readthedocs.io
13Project-URL: GitHub: issues, https://github.com/aio-libs/multidict/issues
14Project-URL: GitHub: repo, https://github.com/aio-libs/multidict
15Platform: UNKNOWN
16Classifier: License :: OSI Approved :: Apache Software License
17Classifier: Intended Audience :: Developers
18Classifier: Programming Language :: Python
19Classifier: Programming Language :: Python :: 3
20Classifier: Programming Language :: Python :: 3.6
21Classifier: Programming Language :: Python :: 3.7
22Classifier: Programming Language :: Python :: 3.8
23Classifier: Programming Language :: Python :: 3.9
24Classifier: Programming Language :: Python :: 3.10
25Classifier: Development Status :: 5 - Production/Stable
26Requires-Python: >=3.6
27License-File: LICENSE
28
29=========
30multidict
31=========
32
33.. image:: https://github.com/aio-libs/multidict/workflows/CI/badge.svg
34   :target: https://github.com/aio-libs/multidict/actions?query=workflow%3ACI
35   :alt: GitHub status for master branch
36
37.. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg
38   :target: https://codecov.io/gh/aio-libs/multidict
39   :alt: Coverage metrics
40
41.. image:: https://img.shields.io/pypi/v/multidict.svg
42   :target: https://pypi.org/project/multidict
43   :alt: PyPI
44
45.. image:: https://readthedocs.org/projects/multidict/badge/?version=latest
46   :target: http://multidict.readthedocs.org/en/latest/?badge=latest
47   :alt: Documentationb
48
49.. image:: https://img.shields.io/pypi/pyversions/multidict.svg
50   :target: https://pypi.org/project/multidict
51   :alt: Python versions
52
53.. image:: https://badges.gitter.im/Join%20Chat.svg
54   :target: https://gitter.im/aio-libs/Lobby
55   :alt: Chat on Gitter
56
57Multidict is dict-like collection of *key-value pairs* where key
58might be occurred more than once in the container.
59
60Introduction
61------------
62
63*HTTP Headers* and *URL query string* require specific data structure:
64*multidict*. It behaves mostly like a regular ``dict`` but it may have
65several *values* for the same *key* and *preserves insertion ordering*.
66
67The *key* is ``str`` (or ``istr`` for case-insensitive dictionaries).
68
69``multidict`` has four multidict classes:
70``MultiDict``, ``MultiDictProxy``, ``CIMultiDict``
71and ``CIMultiDictProxy``.
72
73Immutable proxies (``MultiDictProxy`` and
74``CIMultiDictProxy``) provide a dynamic view for the
75proxied multidict, the view reflects underlying collection changes. They
76implement the ``collections.abc.Mapping`` interface.
77
78Regular mutable (``MultiDict`` and ``CIMultiDict``) classes
79implement ``collections.abc.MutableMapping`` and allows to change
80their own content.
81
82
83*Case insensitive* (``CIMultiDict`` and
84``CIMultiDictProxy``) ones assume the *keys* are case
85insensitive, e.g.::
86
87   >>> dct = CIMultiDict(key='val')
88   >>> 'Key' in dct
89   True
90   >>> dct['Key']
91   'val'
92
93*Keys* should be ``str`` or ``istr`` instances.
94
95The library has optional C Extensions for sake of speed.
96
97
98License
99-------
100
101Apache 2
102
103Library Installation
104--------------------
105
106.. code-block:: bash
107
108   $ pip install multidict
109
110The library is Python 3 only!
111
112PyPI contains binary wheels for Linux, Windows and MacOS.  If you want to install
113``multidict`` on another operation system (or *Alpine Linux* inside a Docker) the
114Tarball will be used to compile the library from sources.  It requires C compiler and
115Python headers installed.
116
117To skip the compilation please use `MULTIDICT_NO_EXTENSIONS` environment variable,
118e.g.:
119
120.. code-block:: bash
121
122   $ MULTIDICT_NO_EXTENSIONS=1 pip install multidict
123
124Please note, Pure Python (uncompiled) version is about 20-50 times slower depending on
125the usage scenario!!!
126
127
128
129Changelog
130---------
131See `RTD page <http://multidict.readthedocs.org/en/latest/changes.html>`_.
132
133