__init__.pyi 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. from typing import Any, Callable, List, Optional, Set, Tuple, TypeVar, Union, overload
  2. from typing_extensions import Literal
  3. import zmq
  4. from .select import select_backend
  5. # avoid collision in Frame.bytes
  6. _bytestr = bytes
  7. T = TypeVar("T")
  8. class Frame:
  9. buffer: Any
  10. bytes: bytes
  11. more: bool
  12. tracker: Any
  13. def __init__(
  14. self,
  15. data: Any = None,
  16. track: bool = False,
  17. copy: bool | None = None,
  18. copy_threshold: int | None = None,
  19. ): ...
  20. def copy_fast(self: T) -> T: ...
  21. def get(self, option: int) -> int | _bytestr | str: ...
  22. def set(self, option: int, value: int | _bytestr | str) -> None: ...
  23. class Socket:
  24. underlying: int
  25. context: zmq.Context
  26. copy_threshold: int
  27. # specific option types
  28. FD: int
  29. def __init__(
  30. self,
  31. context: Context | None = None,
  32. socket_type: int = 0,
  33. shadow: int = 0,
  34. copy_threshold: int | None = zmq.COPY_THRESHOLD,
  35. ) -> None: ...
  36. def close(self, linger: int | None = ...) -> None: ...
  37. def get(self, option: int) -> int | bytes | str: ...
  38. def set(self, option: int, value: int | bytes | str) -> None: ...
  39. def connect(self, url: str): ...
  40. def disconnect(self, url: str) -> None: ...
  41. def bind(self, url: str): ...
  42. def unbind(self, url: str) -> None: ...
  43. def send(
  44. self,
  45. data: Any,
  46. flags: int = ...,
  47. copy: bool = ...,
  48. track: bool = ...,
  49. ) -> zmq.MessageTracker | None: ...
  50. @overload
  51. def recv(
  52. self,
  53. flags: int = ...,
  54. *,
  55. copy: Literal[False],
  56. track: bool = ...,
  57. ) -> zmq.Frame: ...
  58. @overload
  59. def recv(
  60. self,
  61. flags: int = ...,
  62. *,
  63. copy: Literal[True],
  64. track: bool = ...,
  65. ) -> bytes: ...
  66. @overload
  67. def recv(
  68. self,
  69. flags: int = ...,
  70. track: bool = False,
  71. ) -> bytes: ...
  72. @overload
  73. def recv(
  74. self,
  75. flags: int | None = ...,
  76. copy: bool = ...,
  77. track: bool | None = False,
  78. ) -> zmq.Frame | bytes: ...
  79. def recv_into(self, buf, /, *, nbytes: int = 0, flags: int = 0) -> int: ...
  80. def monitor(self, addr: str | None, events: int) -> None: ...
  81. # draft methods
  82. def join(self, group: str) -> None: ...
  83. def leave(self, group: str) -> None: ...
  84. class Context:
  85. underlying: int
  86. def __init__(self, io_threads: int = 1, shadow: int = 0): ...
  87. def get(self, option: int) -> int | bytes | str: ...
  88. def set(self, option: int, value: int | bytes | str) -> None: ...
  89. def socket(self, socket_type: int) -> Socket: ...
  90. def term(self) -> None: ...
  91. IPC_PATH_MAX_LEN: int
  92. PYZMQ_DRAFT_API: bool
  93. def has(capability: str) -> bool: ...
  94. def curve_keypair() -> tuple[bytes, bytes]: ...
  95. def curve_public(secret_key: bytes) -> bytes: ...
  96. def strerror(errno: int | None = ...) -> str: ...
  97. def zmq_errno() -> int: ...
  98. def zmq_version() -> str: ...
  99. def zmq_version_info() -> tuple[int, int, int]: ...
  100. def zmq_poll(
  101. sockets: list[Any], timeout: int | None = ...
  102. ) -> list[tuple[Socket, int]]: ...
  103. def proxy(frontend: Socket, backend: Socket, capture: Socket | None = None) -> int: ...
  104. def proxy_steerable(
  105. frontend: Socket,
  106. backend: Socket,
  107. capture: Socket | None = ...,
  108. control: Socket | None = ...,
  109. ) -> int: ...
  110. monitored_queue = Callable | None