__init__.py 1.2 KB

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