METADATA 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. Metadata-Version: 2.4
  2. Name: multidict
  3. Version: 6.3.2
  4. Summary: multidict implementation
  5. Home-page: https://github.com/aio-libs/multidict
  6. Author: Andrew Svetlov
  7. Author-email: andrew.svetlov@gmail.com
  8. License: Apache 2
  9. Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
  10. Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
  11. Project-URL: CI: GitHub, https://github.com/aio-libs/multidict/actions
  12. Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md
  13. Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/multidict
  14. Project-URL: Docs: Changelog, https://multidict.aio-libs.org/en/latest/changes/
  15. Project-URL: Docs: RTD, https://multidict.aio-libs.org
  16. Project-URL: GitHub: issues, https://github.com/aio-libs/multidict/issues
  17. Project-URL: GitHub: repo, https://github.com/aio-libs/multidict
  18. Classifier: Development Status :: 5 - Production/Stable
  19. Classifier: Intended Audience :: Developers
  20. Classifier: License :: OSI Approved :: Apache Software License
  21. Classifier: Programming Language :: Python
  22. Classifier: Programming Language :: Python :: 3
  23. Classifier: Programming Language :: Python :: 3.9
  24. Classifier: Programming Language :: Python :: 3.10
  25. Classifier: Programming Language :: Python :: 3.11
  26. Classifier: Programming Language :: Python :: 3.12
  27. Classifier: Programming Language :: Python :: 3.13
  28. Requires-Python: >=3.9
  29. Description-Content-Type: text/x-rst
  30. License-File: LICENSE
  31. Requires-Dist: typing-extensions>=4.1.0; python_version < "3.11"
  32. Dynamic: license-file
  33. =========
  34. multidict
  35. =========
  36. .. image:: https://github.com/aio-libs/multidict/actions/workflows/ci-cd.yml/badge.svg
  37. :target: https://github.com/aio-libs/multidict/actions
  38. :alt: GitHub status for master branch
  39. .. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg?flag=pytest
  40. :target: https://codecov.io/gh/aio-libs/multidict?flags[]=pytest
  41. :alt: Coverage metrics
  42. .. image:: https://img.shields.io/pypi/v/multidict.svg
  43. :target: https://pypi.org/project/multidict
  44. :alt: PyPI
  45. .. image:: https://readthedocs.org/projects/multidict/badge/?version=latest
  46. :target: https://multidict.aio-libs.org
  47. :alt: Read The Docs build status badge
  48. .. image:: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json
  49. :target: https://codspeed.io/aio-libs/multidict
  50. :alt: CodSpeed
  51. .. image:: https://img.shields.io/pypi/pyversions/multidict.svg
  52. :target: https://pypi.org/project/multidict
  53. :alt: Python versions
  54. .. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
  55. :target: https://matrix.to/#/%23aio-libs:matrix.org
  56. :alt: Matrix Room — #aio-libs:matrix.org
  57. .. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
  58. :target: https://matrix.to/#/%23aio-libs-space:matrix.org
  59. :alt: Matrix Space — #aio-libs-space:matrix.org
  60. Multidict is dict-like collection of *key-value pairs* where key
  61. might occur more than once in the container.
  62. Introduction
  63. ------------
  64. *HTTP Headers* and *URL query string* require specific data structure:
  65. *multidict*. It behaves mostly like a regular ``dict`` but it may have
  66. several *values* for the same *key* and *preserves insertion ordering*.
  67. The *key* is ``str`` (or ``istr`` for case-insensitive dictionaries).
  68. ``multidict`` has four multidict classes:
  69. ``MultiDict``, ``MultiDictProxy``, ``CIMultiDict``
  70. and ``CIMultiDictProxy``.
  71. Immutable proxies (``MultiDictProxy`` and
  72. ``CIMultiDictProxy``) provide a dynamic view for the
  73. proxied multidict, the view reflects underlying collection changes. They
  74. implement the ``collections.abc.Mapping`` interface.
  75. Regular mutable (``MultiDict`` and ``CIMultiDict``) classes
  76. implement ``collections.abc.MutableMapping`` and allows them to change
  77. their own content.
  78. *Case insensitive* (``CIMultiDict`` and
  79. ``CIMultiDictProxy``) assume the *keys* are case
  80. insensitive, e.g.::
  81. >>> dct = CIMultiDict(key='val')
  82. >>> 'Key' in dct
  83. True
  84. >>> dct['Key']
  85. 'val'
  86. *Keys* should be ``str`` or ``istr`` instances.
  87. The library has optional C Extensions for speed.
  88. License
  89. -------
  90. Apache 2
  91. Library Installation
  92. --------------------
  93. .. code-block:: bash
  94. $ pip install multidict
  95. The library is Python 3 only!
  96. PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install
  97. ``multidict`` on another operating system (or *Alpine Linux* inside a Docker) the
  98. tarball will be used to compile the library from source. It requires a C compiler and
  99. Python headers to be installed.
  100. To skip the compilation, please use the `MULTIDICT_NO_EXTENSIONS` environment variable,
  101. e.g.:
  102. .. code-block:: bash
  103. $ MULTIDICT_NO_EXTENSIONS=1 pip install multidict
  104. Please note, the pure Python (uncompiled) version is about 20-50 times slower depending on
  105. the usage scenario!!!
  106. Changelog
  107. ---------
  108. See `RTD page <http://multidict.aio-libs.org/en/latest/changes>`_.