You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

46 line
1.2 KiB

  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__ # type: ignore
  12. except AttributeError: # pragma: no cover
  13. pass
  14. Origin = NewType("Origin", str)
  15. Origin.__doc__ = """Value of a Origin header"""
  16. ExtensionParameter = Tuple[str, Optional[str]]
  17. ExtensionParameter__doc__ = """Parameter of a WebSocket extension"""
  18. try:
  19. ExtensionParameter.__doc__ = ExtensionParameter__doc__ # type: ignore
  20. except AttributeError: # pragma: no cover
  21. pass
  22. ExtensionHeader = Tuple[str, List[ExtensionParameter]]
  23. ExtensionHeader__doc__ = """Item parsed in a Sec-WebSocket-Extensions header"""
  24. try:
  25. ExtensionHeader.__doc__ = ExtensionHeader__doc__ # type: ignore
  26. except AttributeError: # pragma: no cover
  27. pass
  28. Subprotocol = NewType("Subprotocol", str)
  29. Subprotocol.__doc__ = """Items parsed in a Sec-WebSocket-Protocol header"""