__init__.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. """
  2. Multidict implementation.
  3. HTTP Headers and URL query string require specific data structure:
  4. multidict. It behaves mostly like a dict but it can have
  5. several values for the same key.
  6. """
  7. from typing import TYPE_CHECKING
  8. from ._abc import MultiMapping, MutableMultiMapping
  9. from ._compat import USE_EXTENSIONS
  10. __all__ = (
  11. "CIMultiDict",
  12. "CIMultiDictProxy",
  13. "MultiDict",
  14. "MultiDictProxy",
  15. "MultiMapping",
  16. "MutableMultiMapping",
  17. "getversion",
  18. "istr",
  19. "upstr",
  20. )
  21. __version__ = "6.7.1"
  22. if TYPE_CHECKING or not USE_EXTENSIONS:
  23. from ._multidict_py import (
  24. CIMultiDict,
  25. CIMultiDictProxy,
  26. MultiDict,
  27. MultiDictProxy,
  28. getversion,
  29. istr,
  30. )
  31. else:
  32. from collections.abc import ItemsView, KeysView, ValuesView
  33. from ._multidict import (
  34. CIMultiDict,
  35. CIMultiDictProxy,
  36. MultiDict,
  37. MultiDictProxy,
  38. _ItemsView,
  39. _KeysView,
  40. _ValuesView,
  41. getversion,
  42. istr,
  43. )
  44. MultiMapping.register(MultiDictProxy)
  45. MutableMultiMapping.register(MultiDict)
  46. KeysView.register(_KeysView)
  47. ItemsView.register(_ItemsView)
  48. ValuesView.register(_ValuesView)
  49. upstr = istr