METADATA 4.1 KB

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