typing.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from typing import List, NewType, Optional, Tuple, Union
  2. __all__ = ["Data", "Origin", "ExtensionHeader", "ExtensionParameter", "Subprotocol"]
  3. Data = Union[str, bytes]
  4. Data__doc__ = """
  5. Types supported in a WebSocket message:
  6. - :class:`str` for text messages
  7. - :class:`bytes` for binary messages
  8. """
  9. # Remove try / except when dropping support for Python < 3.7
  10. try:
  11. Data.__doc__ = Data__doc__
  12. except AttributeError: # pragma: no cover
  13. pass
  14. Origin = NewType("Origin", str)
  15. Origin.__doc__ = """Value of a Origin header"""
  16. ExtensionName = NewType("ExtensionName", str)
  17. ExtensionName.__doc__ = """Name of a WebSocket extension"""
  18. ExtensionParameter = Tuple[str, Optional[str]]
  19. ExtensionParameter__doc__ = """Parameter of a WebSocket extension"""
  20. try:
  21. ExtensionParameter.__doc__ = ExtensionParameter__doc__
  22. except AttributeError: # pragma: no cover
  23. pass
  24. ExtensionHeader = Tuple[ExtensionName, List[ExtensionParameter]]
  25. ExtensionHeader__doc__ = """Extension in a Sec-WebSocket-Extensions header"""
  26. try:
  27. ExtensionHeader.__doc__ = ExtensionHeader__doc__
  28. except AttributeError: # pragma: no cover
  29. pass
  30. Subprotocol = NewType("Subprotocol", str)
  31. Subprotocol.__doc__ = """Subprotocol value in a Sec-WebSocket-Protocol header"""
  32. ConnectionOption = NewType("ConnectionOption", str)
  33. ConnectionOption.__doc__ = """Connection option in a Connection header"""
  34. UpgradeProtocol = NewType("UpgradeProtocol", str)
  35. UpgradeProtocol.__doc__ = """Upgrade protocol in an Upgrade header"""