Help on package zmq:

NAME
    zmq - Python bindings for 0MQ.

PACKAGE CONTENTS
    _future
    _typing
    asyncio
    auth (package)
    backend (package)
    constants
    decorators
    devices (package)
    error
    eventloop (package)
    green (package)
    log (package)
    ssh (package)
    sugar (package)
    tests (package)
    utils (package)

CLASSES
    builtins.Exception(builtins.BaseException)
        zmq.error.ZMQBaseError
            zmq.error.NotDone
            zmq.error.ZMQBindError
            zmq.error.ZMQError
                zmq.error.Again
                zmq.error.ContextTerminated
                zmq.error.InterruptedSystemCall(zmq.error.ZMQError, builtins.InterruptedError)
    builtins.NotImplementedError(builtins.RuntimeError)
        zmq.error.ZMQVersionError
    builtins.int(builtins.object)
        enum.IntEnum(builtins.int, enum.Enum)
            zmq.constants.ContextOption
            zmq.constants.DeviceType
            zmq.constants.Errno
            zmq.constants.MessageOption
            zmq.constants.SecurityMechanism
            zmq.constants.SocketOption
            zmq.constants.SocketType
        enum.IntFlag(builtins.int, enum.Flag)
            zmq.constants.Event
            zmq.constants.Flag
            zmq.constants.PollEvent
    builtins.object
        enum.Enum
            enum.IntEnum(builtins.int, enum.Enum)
                zmq.constants.ContextOption
                zmq.constants.DeviceType
                zmq.constants.Errno
                zmq.constants.MessageOption
                zmq.constants.SecurityMechanism
                zmq.constants.SocketOption
                zmq.constants.SocketType
        zmq.sugar.poll.Poller
        zmq.sugar.stopwatch.Stopwatch
        zmq.sugar.tracker.MessageTracker
    enum.Flag(enum.Enum)
        enum.IntFlag(builtins.int, enum.Flag)
            zmq.constants.Event
            zmq.constants.Flag
            zmq.constants.PollEvent
    typing.Generic(builtins.object)
        zmq.sugar.context.Context(zmq.backend.cython.context.Context, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
        zmq.sugar.socket.Socket(zmq.backend.cython.socket.Socket, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
    zmq.backend.cython.context.Context(builtins.object)
        zmq.sugar.context.Context(zmq.backend.cython.context.Context, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
    zmq.backend.cython.message.Frame(builtins.object)
        zmq.sugar.frame.Frame(zmq.backend.cython.message.Frame, zmq.sugar.attrsettr.AttributeSetter)
    zmq.backend.cython.socket.Socket(builtins.object)
        zmq.sugar.socket.Socket(zmq.backend.cython.socket.Socket, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
    zmq.sugar.attrsettr.AttributeSetter(builtins.object)
        zmq.sugar.context.Context(zmq.backend.cython.context.Context, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
        zmq.sugar.frame.Frame(zmq.backend.cython.message.Frame, zmq.sugar.attrsettr.AttributeSetter)
        zmq.sugar.socket.Socket(zmq.backend.cython.socket.Socket, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
    
    class Again(ZMQError)
     |  Again(errno='ignored', msg='ignored')
     |  
     |  Wrapper for zmq.EAGAIN
     |  
     |  .. versionadded:: 13.0
     |  
     |  Method resolution order:
     |      Again
     |      ZMQError
     |      ZMQBaseError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, errno='ignored', msg='ignored')
     |      Wrap an errno style error.
     |      
     |      Parameters
     |      ----------
     |      errno : int
     |          The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
     |          used.
     |      msg : string
     |          Description of the error or None.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from ZMQError:
     |  
     |  __repr__(self) -> str
     |      Return repr(self).
     |  
     |  __str__(self) -> str
     |      Return str(self).
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from ZMQError:
     |  
     |  __annotations__ = {'errno': typing.Union[int, NoneType]}
     |  
     |  errno = None
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from ZMQBaseError:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class Context(zmq.backend.cython.context.Context, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
     |  Context(io_threads: int = 1, **kwargs: Any) -> None
     |  
     |  Create a zmq Context
     |  
     |  A zmq Context creates sockets via its ``ctx.socket`` method.
     |  
     |  Method resolution order:
     |      Context
     |      zmq.backend.cython.context.Context
     |      zmq.sugar.attrsettr.AttributeSetter
     |      typing.Generic
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __copy__(self: ~T, memo: Any = None) -> ~T
     |      Copying a Context creates a shadow copy
     |  
     |  __deepcopy__ = __copy__(self: ~T, memo: Any = None) -> ~T
     |  
     |  __del__(self) -> None
     |      deleting a Context should terminate it, without trying non-threadsafe destroy
     |  
     |  __delattr__(self, key: str) -> None
     |      delete default sockopts as attributes
     |  
     |  __dir__(self) -> List[str]
     |      Default dir() implementation.
     |  
     |  __enter__(self: ~T) -> ~T
     |  
     |  __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None
     |  
     |  __init__(self: 'Context[Socket]', io_threads: int = 1, **kwargs: Any) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  __repr__(self) -> str
     |      Return repr(self).
     |  
     |  destroy(self, linger: Union[float, NoneType] = None) -> None
     |      Close all sockets associated with this context and then terminate
     |      the context.
     |      
     |      .. warning::
     |      
     |          destroy involves calling ``zmq_close()``, which is **NOT** threadsafe.
     |          If there are active sockets in other threads, this must not be called.
     |      
     |      Parameters
     |      ----------
     |      
     |      linger : int, optional
     |          If specified, set LINGER on sockets prior to closing them.
     |  
     |  getsockopt(self, opt: int) -> Union[str, bytes, int]
     |      get default socket options for new sockets created by this Context
     |      
     |      .. versionadded:: 13.0
     |  
     |  setsockopt(self, opt: int, value: Any) -> None
     |      set default socket options for new sockets created by this Context
     |      
     |      .. versionadded:: 13.0
     |  
     |  socket(self: ~T, socket_type: int, **kwargs: Any) -> +ST
     |      Create a Socket associated with this Context.
     |      
     |      Parameters
     |      ----------
     |      socket_type : int
     |          The socket type, which can be any of the 0MQ socket types:
     |          REQ, REP, PUB, SUB, PAIR, DEALER, ROUTER, PULL, PUSH, etc.
     |      
     |      kwargs:
     |          will be passed to the __init__ method of the socket class.
     |  
     |  term(self) -> None
     |      Close or terminate the context.
     |      
     |      Context termination is performed in the following steps:
     |      
     |      - Any blocking operations currently in progress on sockets open within context shall
     |        raise :class:`zmq.ContextTerminated`.
     |        With the exception of socket.close(), any further operations on sockets open within this context
     |        shall raise :class:`zmq.ContextTerminated`.
     |      - After interrupting all blocking calls, term shall block until the following conditions are satisfied:
     |          - All sockets open within context have been closed.
     |          - For each socket within context, all messages sent on the socket have either been
     |            physically transferred to a network peer,
     |            or the socket's linger period set with the zmq.LINGER socket option has expired.
     |      
     |      For further details regarding socket linger behaviour refer to libzmq documentation for ZMQ_LINGER.
     |      
     |      This can be called to close the context by hand. If this is not called,
     |      the context will automatically be closed when it is garbage collected.
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  instance(io_threads: int = 1) -> ~T from builtins.type
     |      Returns a global Context instance.
     |      
     |      Most single-threaded applications have a single, global Context.
     |      Use this method instead of passing around Context instances
     |      throughout your code.
     |      
     |      A common pattern for classes that depend on Contexts is to use
     |      a default argument to enable programs with multiple Contexts
     |      but not require the argument for simpler applications::
     |      
     |          class MyClass(object):
     |              def __init__(self, context=None):
     |                  self.context = context or Context.instance()
     |      
     |      .. versionchanged:: 18.1
     |      
     |          When called in a subprocess after forking,
     |          a new global instance is created instead of inheriting
     |          a Context that won't work from the parent process.
     |  
     |  shadow(address: int) -> ~T from builtins.type
     |      Shadow an existing libzmq context
     |      
     |      address is the integer address of the libzmq context
     |      or an FFI pointer to it.
     |      
     |      .. versionadded:: 14.1
     |  
     |  shadow_pyczmq(ctx: Any) -> ~T from builtins.type
     |      Shadow an existing pyczmq context
     |      
     |      ctx is the FFI `zctx_t *` pointer
     |      
     |      .. versionadded:: 14.1
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __annotations__ = {'_instance': typing.Any, '_instance_pid': typing.Un...
     |  
     |  __orig_bases__ = (<class 'zmq.backend.cython.context.Context'>, <class...
     |  
     |  __parameters__ = (+ST,)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.backend.cython.context.Context:
     |  
     |  __reduce__ = __reduce_cython__(...)
     |  
     |  __setstate__ = __setstate_cython__(...)
     |  
     |  get(self, option)
     |      ctx.get(option)
     |      
     |      Get the value of a context option.
     |      
     |      See the 0MQ API documentation for zmq_ctx_get
     |      for details on specific options.
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      
     |      Parameters
     |      ----------
     |      option : int
     |          The option to get.  Available values will depend on your
     |          version of libzmq.  Examples include::
     |      
     |              zmq.IO_THREADS, zmq.MAX_SOCKETS
     |      
     |      Returns
     |      -------
     |      optval : int
     |          The value of the option as an integer.
     |  
     |  set(self, option, optval)
     |      ctx.set(option, optval)
     |      
     |      Set a context option.
     |      
     |      See the 0MQ API documentation for zmq_ctx_set
     |      for details on specific options.
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      
     |      Parameters
     |      ----------
     |      option : int
     |          The option to set.  Available values will depend on your
     |          version of libzmq.  Examples include::
     |      
     |              zmq.IO_THREADS, zmq.MAX_SOCKETS
     |      
     |      optval : int
     |          The value of the option to set.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from zmq.backend.cython.context.Context:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from zmq.backend.cython.context.Context:
     |  
     |  closed
     |  
     |  underlying
     |      The address of the underlying libzmq context
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from zmq.backend.cython.context.Context:
     |  
     |  __pyx_vtable__ = <capsule object NULL>
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.sugar.attrsettr.AttributeSetter:
     |  
     |  __getattr__(self, key: str) -> Union[str, bytes, int]
     |      get zmq options by attribute
     |  
     |  __setattr__(self, key: str, value: Union[str, bytes, int]) -> None
     |      set zmq options by attribute
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from zmq.sugar.attrsettr.AttributeSetter:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |  
     |  __class_getitem__(params) from builtins.type
     |  
     |  __init_subclass__(*args, **kwargs) from builtins.type
     |      This method is called when a class is subclassed.
     |      
     |      The default implementation does nothing. It may be
     |      overridden to extend subclasses.
    
    class ContextOption(enum.IntEnum)
     |  ContextOption(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Options for Context.get/set
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      ContextOption
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  IO_THREADS = <ContextOption.IO_THREADS: 1>
     |  
     |  MAX_MSGSZ = <ContextOption.MAX_MSGSZ: 5>
     |  
     |  MAX_SOCKETS = <ContextOption.MAX_SOCKETS: 2>
     |  
     |  MSG_T_SIZE = <ContextOption.MSG_T_SIZE: 6>
     |  
     |  SOCKET_LIMIT = <ContextOption.SOCKET_LIMIT: 3>
     |  
     |  THREAD_AFFINITY_CPU_ADD = <ContextOption.THREAD_AFFINITY_CPU_ADD: 7>
     |  
     |  THREAD_AFFINITY_CPU_REMOVE = <ContextOption.THREAD_AFFINITY_CPU_REMOVE...
     |  
     |  THREAD_NAME_PREFIX = <ContextOption.THREAD_NAME_PREFIX: 9>
     |  
     |  THREAD_SCHED_POLICY = <ContextOption.THREAD_SCHED_POLICY: 4>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class ContextTerminated(ZMQError)
     |  ContextTerminated(errno='ignored', msg='ignored')
     |  
     |  Wrapper for zmq.ETERM
     |  
     |  .. versionadded:: 13.0
     |  
     |  Method resolution order:
     |      ContextTerminated
     |      ZMQError
     |      ZMQBaseError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, errno='ignored', msg='ignored')
     |      Wrap an errno style error.
     |      
     |      Parameters
     |      ----------
     |      errno : int
     |          The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
     |          used.
     |      msg : string
     |          Description of the error or None.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from ZMQError:
     |  
     |  __repr__(self) -> str
     |      Return repr(self).
     |  
     |  __str__(self) -> str
     |      Return str(self).
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from ZMQError:
     |  
     |  __annotations__ = {'errno': typing.Union[int, NoneType]}
     |  
     |  errno = None
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from ZMQBaseError:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class DeviceType(enum.IntEnum)
     |  DeviceType(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Device type constants for zmq.device
     |  
     |  .. versionadded: 23
     |  
     |  Method resolution order:
     |      DeviceType
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  FORWARDER = <DeviceType.FORWARDER: 2>
     |  
     |  QUEUE = <DeviceType.QUEUE: 3>
     |  
     |  STREAMER = <DeviceType.STREAMER: 1>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Enum(builtins.object)
     |  Enum(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Generic enumeration.
     |  
     |  Derive from this class to define new enumerations.
     |  
     |  Data descriptors defined here:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Errno(enum.IntEnum)
     |  Errno(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  libzmq error codes
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      Errno
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  EADDRINUSE = <Errno.EADDRINUSE: 98>
     |  
     |  EADDRNOTAVAIL = <Errno.EADDRNOTAVAIL: 99>
     |  
     |  EAFNOSUPPORT = <Errno.EAFNOSUPPORT: 97>
     |  
     |  EAGAIN = <Errno.EAGAIN: 11>
     |  
     |  ECONNABORTED = <Errno.ECONNABORTED: 103>
     |  
     |  ECONNREFUSED = <Errno.ECONNREFUSED: 111>
     |  
     |  ECONNRESET = <Errno.ECONNRESET: 104>
     |  
     |  EFAULT = <Errno.EFAULT: 14>
     |  
     |  EFSM = <Errno.EFSM: 156384763>
     |  
     |  EHOSTUNREACH = <Errno.EHOSTUNREACH: 113>
     |  
     |  EINPROGRESS = <Errno.EINPROGRESS: 115>
     |  
     |  EINVAL = <Errno.EINVAL: 22>
     |  
     |  EMSGSIZE = <Errno.EMSGSIZE: 90>
     |  
     |  EMTHREAD = <Errno.EMTHREAD: 156384766>
     |  
     |  ENETDOWN = <Errno.ENETDOWN: 100>
     |  
     |  ENETRESET = <Errno.ENETRESET: 102>
     |  
     |  ENETUNREACH = <Errno.ENETUNREACH: 101>
     |  
     |  ENOBUFS = <Errno.ENOBUFS: 105>
     |  
     |  ENOCOMPATPROTO = <Errno.ENOCOMPATPROTO: 156384764>
     |  
     |  ENOTCONN = <Errno.ENOTCONN: 107>
     |  
     |  ENOTSOCK = <Errno.ENOTSOCK: 88>
     |  
     |  ENOTSUP = <Errno.ENOTSUP: 95>
     |  
     |  EPROTONOSUPPORT = <Errno.EPROTONOSUPPORT: 93>
     |  
     |  ETERM = <Errno.ETERM: 156384765>
     |  
     |  ETIMEDOUT = <Errno.ETIMEDOUT: 110>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Event(enum.IntFlag)
     |  Event(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Socket monitoring events
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      Event
     |      enum.IntFlag
     |      builtins.int
     |      enum.Flag
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  ACCEPTED = <Event.ACCEPTED: 32>
     |  
     |  ACCEPT_FAILED = <Event.ACCEPT_FAILED: 64>
     |  
     |  ALL_V1 = <Event.ALL_V1: 65535>
     |  
     |  ALL_V2 = <Event.ALL_V2: 131071>
     |  
     |  BIND_FAILED = <Event.BIND_FAILED: 16>
     |  
     |  CLOSED = <Event.CLOSED: 128>
     |  
     |  CLOSE_FAILED = <Event.CLOSE_FAILED: 256>
     |  
     |  CONNECTED = <Event.CONNECTED: 1>
     |  
     |  CONNECT_DELAYED = <Event.CONNECT_DELAYED: 2>
     |  
     |  CONNECT_RETRIED = <Event.CONNECT_RETRIED: 4>
     |  
     |  DISCONNECTED = <Event.DISCONNECTED: 512>
     |  
     |  HANDSHAKE_FAILED_AUTH = <Event.HANDSHAKE_FAILED_AUTH: 16384>
     |  
     |  HANDSHAKE_FAILED_NO_DETAIL = <Event.HANDSHAKE_FAILED_NO_DETAIL: 2048>
     |  
     |  HANDSHAKE_FAILED_PROTOCOL = <Event.HANDSHAKE_FAILED_PROTOCOL: 8192>
     |  
     |  HANDSHAKE_SUCCEEDED = <Event.HANDSHAKE_SUCCEEDED: 4096>
     |  
     |  LISTENING = <Event.LISTENING: 8>
     |  
     |  MONITOR_STOPPED = <Event.MONITOR_STOPPED: 1024>
     |  
     |  PIPES_STATS = <Event.PIPES_STATS: 65536>
     |  
     |  PROTOCOL_ERROR_WS_UNSPECIFIED = <Event.PROTOCOL_ERROR_WS_UNSPECIFIED: ...
     |  
     |  PROTOCOL_ERROR_ZAP_BAD_REQUEST_ID = <Event.PROTOCOL_ERROR_ZAP_BAD_REQU...
     |  
     |  PROTOCOL_ERROR_ZAP_BAD_VERSION = <Event.PROTOCOL_ERROR_ZAP_BAD_VERSION...
     |  
     |  PROTOCOL_ERROR_ZAP_INVALID_METADATA = <Event.PROTOCOL_ERROR_ZAP_INVALI...
     |  
     |  PROTOCOL_ERROR_ZAP_INVALID_STATUS_CODE = <Event.PROTOCOL_ERROR_ZAP_INV...
     |  
     |  PROTOCOL_ERROR_ZAP_MALFORMED_REPLY = <Event.PROTOCOL_ERROR_ZAP_MALFORM...
     |  
     |  PROTOCOL_ERROR_ZAP_UNSPECIFIED = <Event.PROTOCOL_ERROR_ZAP_UNSPECIFIED...
     |  
     |  PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC = <Event.PROTOCOL_ERROR_ZMTP_CRYPTOG...
     |  
     |  PROTOCOL_ERROR_ZMTP_INVALID_METADATA = <Event.PROTOCOL_ERROR_ZMTP_INVA...
     |  
     |  PROTOCOL_ERROR_ZMTP_INVALID_SEQUENCE = <Event.PROTOCOL_ERROR_ZMTP_INVA...
     |  
     |  PROTOCOL_ERROR_ZMTP_KEY_EXCHANGE = <Event.PROTOCOL_ERROR_ZMTP_KEY_EXCH...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_ERROR = <Event.PROTOCOL_ERROR_ZM...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_HELLO = <Event.PROTOCOL_ERROR_ZM...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_INITIATE = <Event.PROTOCOL_ERROR...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_MESSAGE = <Event.PROTOCOL_ERROR_...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_READY = <Event.PROTOCOL_ERROR_ZM...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_UNSPECIFIED = <Event.PROTOCOL_ER...
     |  
     |  PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_WELCOME = <Event.PROTOCOL_ERROR_...
     |  
     |  PROTOCOL_ERROR_ZMTP_MECHANISM_MISMATCH = <Event.PROTOCOL_ERROR_ZMTP_ME...
     |  
     |  PROTOCOL_ERROR_ZMTP_UNEXPECTED_COMMAND = <Event.PROTOCOL_ERROR_ZMTP_UN...
     |  
     |  PROTOCOL_ERROR_ZMTP_UNSPECIFIED = <Event.PROTOCOL_ERROR_ZMTP_UNSPECIFI...
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Flag(enum.IntFlag)
     |  Flag(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Send/recv flags
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      Flag
     |      enum.IntFlag
     |      builtins.int
     |      enum.Flag
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  DONTWAIT = <Flag.DONTWAIT: 1>
     |  
     |  SNDMORE = <Flag.SNDMORE: 2>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Frame(zmq.backend.cython.message.Frame, zmq.sugar.attrsettr.AttributeSetter)
     |  Frame(data=None, track=False, copy=None, copy_threshold=zmq.COPY_THRESHOLD)
     |  
     |  A zmq message Frame class for non-copying send/recvs and access to message properties.
     |  
     |  A ``zmq.Frame`` wraps an underlying ``zmq_msg_t``.
     |  
     |  Message *properties* can be accessed by treating a Frame like a dictionary (``frame["User-Id"]``).
     |  
     |  .. versionadded:: 14.4, libzmq 4
     |  
     |      Frames created by ``recv(copy=False)`` can be used to access message properties and attributes,
     |      such as the CURVE User-Id.
     |  
     |      For example::
     |  
     |          frames = socket.recv_multipart(copy=False)
     |          user_id = frames[0]["User-Id"]
     |  
     |  This class is used if you want to do non-copying send and recvs.
     |  When you pass a chunk of bytes to this class, e.g. ``Frame(buf)``, the
     |  ref-count of `buf` is increased by two: once because the Frame saves `buf` as
     |  an instance attribute and another because a ZMQ message is created that
     |  points to the buffer of `buf`. This second ref-count increase makes sure
     |  that `buf` lives until all messages that use it have been sent.
     |  Once 0MQ sends all the messages and it doesn't need the buffer of ``buf``,
     |  0MQ will call ``Py_DECREF(s)``.
     |  
     |  Parameters
     |  ----------
     |  
     |  data : object, optional
     |      any object that provides the buffer interface will be used to
     |      construct the 0MQ message data.
     |  track : bool [default: False]
     |      whether a MessageTracker_ should be created to track this object.
     |      Tracking a message has a cost at creation, because it creates a threadsafe
     |      Event object.
     |  copy : bool [default: use copy_threshold]
     |      Whether to create a copy of the data to pass to libzmq
     |      or share the memory with libzmq.
     |      If unspecified, copy_threshold is used.
     |  copy_threshold: int [default: zmq.COPY_THRESHOLD]
     |      If copy is unspecified, messages smaller than this many bytes
     |      will be copied and messages larger than this will be shared with libzmq.
     |  
     |  Method resolution order:
     |      Frame
     |      zmq.backend.cython.message.Frame
     |      zmq.sugar.attrsettr.AttributeSetter
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __getitem__(self, key)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  group
     |      The RADIO-DISH group of the message.
     |      
     |      Requires libzmq >= 4.2 and pyzmq built with draft APIs enabled.
     |      
     |      .. versionadded:: 17
     |  
     |  routing_id
     |      The CLIENT-SERVER routing id of the message.
     |      
     |      Requires libzmq >= 4.2 and pyzmq built with draft APIs enabled.
     |      
     |      .. versionadded:: 17
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.backend.cython.message.Frame:
     |  
     |  __copy__(self)
     |      Create a shallow copy of the message.
     |      
     |      This does not copy the contents of the Frame, just the pointer.
     |      This will increment the 0MQ ref count of the message, but not
     |      the ref count of the Python object. That is only done once when
     |      the Python is first turned into a 0MQ message.
     |  
     |  __init__(...)
     |      Enforce signature
     |  
     |  __len__(...)
     |      Return the length of the message in bytes.
     |  
     |  __reduce__ = __reduce_cython__(...)
     |  
     |  __setstate__ = __setstate_cython__(...)
     |  
     |  __str__(...)
     |      Return the str form of the message.
     |  
     |  get(self, option)
     |      Frame.get(option)
     |      
     |      Get a Frame option or property.
     |      
     |      See the 0MQ API documentation for zmq_msg_get and zmq_msg_gets
     |      for details on specific options.
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      
     |      .. versionchanged:: 14.3
     |          add support for zmq_msg_gets (requires libzmq-4.1)
     |          All message properties are strings.
     |      
     |      .. versionchanged:: 17.0
     |          Added support for `routing_id` and `group`.
     |          Only available if draft API is enabled
     |          with libzmq >= 4.2.
     |  
     |  set(self, option, value)
     |      Frame.set(option, value)
     |      
     |      Set a Frame option.
     |      
     |      See the 0MQ API documentation for zmq_msg_set
     |      for details on specific options.
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      .. versionchanged:: 17.0
     |          Added support for `routing_id` and `group`.
     |          Only available if draft API is enabled
     |          with libzmq >= 4.2.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from zmq.backend.cython.message.Frame:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from zmq.backend.cython.message.Frame:
     |  
     |  buffer
     |      A memoryview of the message contents.
     |  
     |  bytes
     |      The message content as a Python bytes object.
     |      
     |      The first time this property is accessed, a copy of the message
     |      contents is made. From then on that same copy of the message is
     |      returned.
     |  
     |  more
     |  
     |  tracker
     |  
     |  tracker_event
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from zmq.backend.cython.message.Frame:
     |  
     |  __pyx_vtable__ = <capsule object NULL>
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.sugar.attrsettr.AttributeSetter:
     |  
     |  __getattr__(self, key: str) -> Union[str, bytes, int]
     |      get zmq options by attribute
     |  
     |  __setattr__(self, key: str, value: Union[str, bytes, int]) -> None
     |      set zmq options by attribute
    
    class IntEnum(builtins.int, Enum)
     |  IntEnum(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Enum where members are also (and must be) ints
     |  
     |  Method resolution order:
     |      IntEnum
     |      builtins.int
     |      Enum
     |      builtins.object
     |  
     |  Data descriptors inherited from Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class IntFlag(builtins.int, Flag)
     |  IntFlag(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Support for integer-based Flags
     |  
     |  Method resolution order:
     |      IntFlag
     |      builtins.int
     |      Flag
     |      Enum
     |      builtins.object
     |  
     |  Data descriptors inherited from Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class InterruptedSystemCall(ZMQError, builtins.InterruptedError)
     |  InterruptedSystemCall(errno='ignored', msg='ignored')
     |  
     |  Wrapper for EINTR
     |  
     |  This exception should be caught internally in pyzmq
     |  to retry system calls, and not propagate to the user.
     |  
     |  .. versionadded:: 14.7
     |  
     |  Method resolution order:
     |      InterruptedSystemCall
     |      ZMQError
     |      ZMQBaseError
     |      builtins.InterruptedError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, errno='ignored', msg='ignored')
     |      Wrap an errno style error.
     |      
     |      Parameters
     |      ----------
     |      errno : int
     |          The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
     |          used.
     |      msg : string
     |          Description of the error or None.
     |  
     |  __str__(self)
     |      Return str(self).
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  errno = 4
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from ZMQError:
     |  
     |  __repr__(self) -> str
     |      Return repr(self).
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from ZMQError:
     |  
     |  __annotations__ = {'errno': typing.Union[int, NoneType]}
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |  
     |  characters_written
     |  
     |  filename
     |      exception filename
     |  
     |  filename2
     |      second exception filename
     |  
     |  strerror
     |      exception strerror
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    Message = class Frame(zmq.backend.cython.message.Frame, zmq.sugar.attrsettr.AttributeSetter)
     |  Frame(data=None, track=False, copy=None, copy_threshold=zmq.COPY_THRESHOLD)
     |  
     |  A zmq message Frame class for non-copying send/recvs and access to message properties.
     |  
     |  A ``zmq.Frame`` wraps an underlying ``zmq_msg_t``.
     |  
     |  Message *properties* can be accessed by treating a Frame like a dictionary (``frame["User-Id"]``).
     |  
     |  .. versionadded:: 14.4, libzmq 4
     |  
     |      Frames created by ``recv(copy=False)`` can be used to access message properties and attributes,
     |      such as the CURVE User-Id.
     |  
     |      For example::
     |  
     |          frames = socket.recv_multipart(copy=False)
     |          user_id = frames[0]["User-Id"]
     |  
     |  This class is used if you want to do non-copying send and recvs.
     |  When you pass a chunk of bytes to this class, e.g. ``Frame(buf)``, the
     |  ref-count of `buf` is increased by two: once because the Frame saves `buf` as
     |  an instance attribute and another because a ZMQ message is created that
     |  points to the buffer of `buf`. This second ref-count increase makes sure
     |  that `buf` lives until all messages that use it have been sent.
     |  Once 0MQ sends all the messages and it doesn't need the buffer of ``buf``,
     |  0MQ will call ``Py_DECREF(s)``.
     |  
     |  Parameters
     |  ----------
     |  
     |  data : object, optional
     |      any object that provides the buffer interface will be used to
     |      construct the 0MQ message data.
     |  track : bool [default: False]
     |      whether a MessageTracker_ should be created to track this object.
     |      Tracking a message has a cost at creation, because it creates a threadsafe
     |      Event object.
     |  copy : bool [default: use copy_threshold]
     |      Whether to create a copy of the data to pass to libzmq
     |      or share the memory with libzmq.
     |      If unspecified, copy_threshold is used.
     |  copy_threshold: int [default: zmq.COPY_THRESHOLD]
     |      If copy is unspecified, messages smaller than this many bytes
     |      will be copied and messages larger than this will be shared with libzmq.
     |  
     |  Method resolution order:
     |      Frame
     |      zmq.backend.cython.message.Frame
     |      zmq.sugar.attrsettr.AttributeSetter
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __getitem__(self, key)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  group
     |      The RADIO-DISH group of the message.
     |      
     |      Requires libzmq >= 4.2 and pyzmq built with draft APIs enabled.
     |      
     |      .. versionadded:: 17
     |  
     |  routing_id
     |      The CLIENT-SERVER routing id of the message.
     |      
     |      Requires libzmq >= 4.2 and pyzmq built with draft APIs enabled.
     |      
     |      .. versionadded:: 17
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.backend.cython.message.Frame:
     |  
     |  __copy__(self)
     |      Create a shallow copy of the message.
     |      
     |      This does not copy the contents of the Frame, just the pointer.
     |      This will increment the 0MQ ref count of the message, but not
     |      the ref count of the Python object. That is only done once when
     |      the Python is first turned into a 0MQ message.
     |  
     |  __init__(...)
     |      Enforce signature
     |  
     |  __len__(...)
     |      Return the length of the message in bytes.
     |  
     |  __reduce__ = __reduce_cython__(...)
     |  
     |  __setstate__ = __setstate_cython__(...)
     |  
     |  __str__(...)
     |      Return the str form of the message.
     |  
     |  get(self, option)
     |      Frame.get(option)
     |      
     |      Get a Frame option or property.
     |      
     |      See the 0MQ API documentation for zmq_msg_get and zmq_msg_gets
     |      for details on specific options.
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      
     |      .. versionchanged:: 14.3
     |          add support for zmq_msg_gets (requires libzmq-4.1)
     |          All message properties are strings.
     |      
     |      .. versionchanged:: 17.0
     |          Added support for `routing_id` and `group`.
     |          Only available if draft API is enabled
     |          with libzmq >= 4.2.
     |  
     |  set(self, option, value)
     |      Frame.set(option, value)
     |      
     |      Set a Frame option.
     |      
     |      See the 0MQ API documentation for zmq_msg_set
     |      for details on specific options.
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      .. versionchanged:: 17.0
     |          Added support for `routing_id` and `group`.
     |          Only available if draft API is enabled
     |          with libzmq >= 4.2.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from zmq.backend.cython.message.Frame:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from zmq.backend.cython.message.Frame:
     |  
     |  buffer
     |      A memoryview of the message contents.
     |  
     |  bytes
     |      The message content as a Python bytes object.
     |      
     |      The first time this property is accessed, a copy of the message
     |      contents is made. From then on that same copy of the message is
     |      returned.
     |  
     |  more
     |  
     |  tracker
     |  
     |  tracker_event
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from zmq.backend.cython.message.Frame:
     |  
     |  __pyx_vtable__ = <capsule object NULL>
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.sugar.attrsettr.AttributeSetter:
     |  
     |  __getattr__(self, key: str) -> Union[str, bytes, int]
     |      get zmq options by attribute
     |  
     |  __setattr__(self, key: str, value: Union[str, bytes, int]) -> None
     |      set zmq options by attribute
    
    class MessageOption(enum.IntEnum)
     |  MessageOption(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Options on zmq.Frame objects
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      MessageOption
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  MORE = <MessageOption.MORE: 1>
     |  
     |  SHARED = <MessageOption.SHARED: 3>
     |  
     |  SRCFD = <MessageOption.SRCFD: 2>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class MessageTracker(builtins.object)
     |  MessageTracker(*towatch: Tuple[Union[ForwardRef('MessageTracker'), threading.Event, zmq.backend.cython.message.Frame]])
     |  
     |  MessageTracker(*towatch)
     |  
     |  A class for tracking if 0MQ is done using one or more messages.
     |  
     |  When you send a 0MQ message, it is not sent immediately. The 0MQ IO thread
     |  sends the message at some later time. Often you want to know when 0MQ has
     |  actually sent the message though. This is complicated by the fact that
     |  a single 0MQ message can be sent multiple times using different sockets.
     |  This class allows you to track all of the 0MQ usages of a message.
     |  
     |  Parameters
     |  ----------
     |  towatch : Event, MessageTracker, Message instances.
     |      This objects to track. This class can track the low-level
     |      Events used by the Message class, other MessageTrackers or
     |      actual Messages.
     |  
     |  Methods defined here:
     |  
     |  __init__(self, *towatch: Tuple[Union[ForwardRef('MessageTracker'), threading.Event, zmq.backend.cython.message.Frame]])
     |      MessageTracker(*towatch)
     |      
     |      Create a message tracker to track a set of messages.
     |      
     |      Parameters
     |      ----------
     |      *towatch : tuple of Event, MessageTracker, Message instances.
     |          This list of objects to track. This class can track the low-level
     |          Events used by the Message class, other MessageTrackers or
     |          actual Messages.
     |  
     |  wait(self, timeout: Union[float, int] = -1)
     |      mt.wait(timeout=-1)
     |      
     |      Wait for 0MQ to be done with the message or until `timeout`.
     |      
     |      Parameters
     |      ----------
     |      timeout : float [default: -1, wait forever]
     |          Maximum time in (s) to wait before raising NotDone.
     |      
     |      Returns
     |      -------
     |      None
     |          if done before `timeout`
     |      
     |      Raises
     |      ------
     |      NotDone
     |          if `timeout` reached before I am done.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |  
     |  done
     |      Is 0MQ completely done with the message(s) being tracked?
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __annotations__ = {'events': typing.Set[threading.Event], 'peers': typ...
    
    class NotDone(ZMQBaseError)
     |  Raised when timeout is reached while waiting for 0MQ to finish with a Message
     |  
     |  See Also
     |  --------
     |  .MessageTracker.wait : object for tracking when ZeroMQ is done
     |  
     |  Method resolution order:
     |      NotDone
     |      ZMQBaseError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data descriptors inherited from ZMQBaseError:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  __str__(self, /)
     |      Return str(self).
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class PollEvent(enum.IntFlag)
     |  PollEvent(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Which events to poll for in poll methods
     |  
     |  .. versionadded: 23
     |  
     |  Method resolution order:
     |      PollEvent
     |      enum.IntFlag
     |      builtins.int
     |      enum.Flag
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  POLLERR = <PollEvent.POLLERR: 4>
     |  
     |  POLLIN = <PollEvent.POLLIN: 1>
     |  
     |  POLLOUT = <PollEvent.POLLOUT: 2>
     |  
     |  POLLPRI = <PollEvent.POLLPRI: 8>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Poller(builtins.object)
     |  Poller() -> None
     |  
     |  A stateful poll interface that mirrors Python's built-in poll.
     |  
     |  Methods defined here:
     |  
     |  __contains__(self, socket: Any) -> bool
     |  
     |  __init__(self) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  modify(self, socket, flags=<PollEvent.POLLOUT|POLLIN: 3>)
     |      Modify the flags for an already registered 0MQ socket or native fd.
     |  
     |  poll(self, timeout: Union[int, NoneType] = None) -> List[Tuple[Any, int]]
     |      Poll the registered 0MQ or native fds for I/O.
     |      
     |      If there are currently events ready to be processed, this function will return immediately.
     |      Otherwise, this function will return as soon the first event is available or after timeout
     |      milliseconds have elapsed.
     |      
     |      Parameters
     |      ----------
     |      timeout : int
     |          The timeout in milliseconds. If None, no `timeout` (infinite). This
     |          is in milliseconds to be compatible with ``select.poll()``.
     |      
     |      Returns
     |      -------
     |      events : list of tuples
     |          The list of events that are ready to be processed.
     |          This is a list of tuples of the form ``(socket, event_mask)``, where the 0MQ Socket
     |          or integer fd is the first element, and the poll event mask (POLLIN, POLLOUT) is the second.
     |          It is common to call ``events = dict(poller.poll())``,
     |          which turns the list of tuples into a mapping of ``socket : event_mask``.
     |  
     |  register(self, socket: Any, flags: int = <PollEvent.POLLOUT|POLLIN: 3>)
     |      p.register(socket, flags=POLLIN|POLLOUT)
     |      
     |      Register a 0MQ socket or native fd for I/O monitoring.
     |      
     |      register(s,0) is equivalent to unregister(s).
     |      
     |      Parameters
     |      ----------
     |      socket : zmq.Socket or native socket
     |          A zmq.Socket or any Python object having a ``fileno()``
     |          method that returns a valid file descriptor.
     |      flags : int
     |          The events to watch for.  Can be POLLIN, POLLOUT or POLLIN|POLLOUT.
     |          If `flags=0`, socket will be unregistered.
     |  
     |  unregister(self, socket: Any)
     |      Remove a 0MQ socket or native fd for I/O monitoring.
     |      
     |      Parameters
     |      ----------
     |      socket : Socket
     |          The socket instance to stop polling.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __annotations__ = {'_map': typing.Dict, 'sockets': typing.List[typing....
    
    class SecurityMechanism(enum.IntEnum)
     |  SecurityMechanism(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Security mechanisms (as returned by ``socket.get(zmq.MECHANISM)``)
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      SecurityMechanism
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  CURVE = <SecurityMechanism.CURVE: 2>
     |  
     |  GSSAPI = <SecurityMechanism.GSSAPI: 3>
     |  
     |  NULL = <SecurityMechanism.NULL: 0>
     |  
     |  PLAIN = <SecurityMechanism.PLAIN: 1>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Socket(zmq.backend.cython.socket.Socket, zmq.sugar.attrsettr.AttributeSetter, typing.Generic)
     |  Socket(*a, **kw)
     |  
     |  The ZMQ socket object
     |  
     |  To create a Socket, first create a Context::
     |  
     |      ctx = zmq.Context.instance()
     |  
     |  then call ``ctx.socket(socket_type)``::
     |  
     |      s = ctx.socket(zmq.ROUTER)
     |  
     |  Method resolution order:
     |      Socket
     |      zmq.backend.cython.socket.Socket
     |      zmq.sugar.attrsettr.AttributeSetter
     |      typing.Generic
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __copy__(self: ~T, memo=None) -> ~T
     |      Copying a Socket creates a shadow copy
     |  
     |  __deepcopy__ = __copy__(self: ~T, memo=None) -> ~T
     |  
     |  __del__(self)
     |  
     |  __dir__(self)
     |      Default dir() implementation.
     |  
     |  __enter__(self: ~T) -> ~T
     |      Sockets are context managers
     |      
     |      .. versionadded:: 14.4
     |  
     |  __exit__(self, *args, **kwargs)
     |  
     |  __init__(self: 'Socket[bytes]', *a, **kw)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  __repr__(self)
     |      Return repr(self).
     |  
     |  __setattr__(self, key, value)
     |      Override to allow setting zmq.[UN]SUBSCRIBE even though we have a subscribe method
     |  
     |  bind(self: ~T, addr: str) -> zmq.sugar.socket._SocketContext[~T]
     |      s.bind(addr)
     |      
     |      Bind the socket to an address.
     |      
     |      This causes the socket to listen on a network port. Sockets on the
     |      other side of this connection will use ``Socket.connect(addr)`` to
     |      connect to this socket.
     |      
     |      Returns a context manager which will call unbind on exit.
     |      
     |      .. versionadded:: 20.0
     |          Can be used as a context manager.
     |      
     |      Parameters
     |      ----------
     |      addr : str
     |          The address string. This has the form 'protocol://interface:port',
     |          for example 'tcp://127.0.0.1:5555'. Protocols supported include
     |          tcp, udp, pgm, epgm, inproc and ipc. If the address is unicode, it is
     |          encoded to utf-8 first.
     |  
     |  bind_to_random_port(self: ~T, addr: str, min_port: int = 49152, max_port: int = 65536, max_tries: int = 100) -> int
     |      Bind this socket to a random port in a range.
     |      
     |      If the port range is unspecified, the system will choose the port.
     |      
     |      Parameters
     |      ----------
     |      addr : str
     |          The address string without the port to pass to ``Socket.bind()``.
     |      min_port : int, optional
     |          The minimum port in the range of ports to try (inclusive).
     |      max_port : int, optional
     |          The maximum port in the range of ports to try (exclusive).
     |      max_tries : int, optional
     |          The maximum number of bind attempts to make.
     |      
     |      Returns
     |      -------
     |      port : int
     |          The port the socket was bound to.
     |      
     |      Raises
     |      ------
     |      ZMQBindError
     |          if `max_tries` reached before successful bind
     |  
     |  close(self, linger=None) -> None
     |      Close the socket.
     |      
     |      If linger is specified, LINGER sockopt will be set prior to closing.
     |      
     |      Note: closing a zmq Socket may not close the underlying sockets
     |      if there are undelivered messages.
     |      Only after all messages are delivered or discarded by reaching the socket's LINGER timeout
     |      (default: forever)
     |      will the underlying sockets be closed.
     |      
     |      This can be called to close the socket by hand. If this is not
     |      called, the socket will automatically be closed when it is
     |      garbage collected.
     |  
     |  connect(self: ~T, addr: str) -> zmq.sugar.socket._SocketContext[~T]
     |      s.connect(addr)
     |      
     |      Connect to a remote 0MQ socket.
     |      
     |      Returns a context manager which will call disconnect on exit.
     |      
     |      .. versionadded:: 20.0
     |          Can be used as a context manager.
     |      
     |      Parameters
     |      ----------
     |      addr : str
     |          The address string. This has the form 'protocol://interface:port',
     |          for example 'tcp://127.0.0.1:5555'. Protocols supported are
     |          tcp, udp, pgm, inproc and ipc. If the address is unicode, it is
     |          encoded to utf-8 first.
     |  
     |  disable_monitor(self) -> None
     |      Shutdown the PAIR socket (created using get_monitor_socket)
     |      that is serving socket events.
     |      
     |      .. versionadded:: 14.4
     |  
     |  fileno(self) -> int
     |      Return edge-triggered file descriptor for this socket.
     |      
     |      This is a read-only edge-triggered file descriptor for both read and write events on this socket.
     |      It is important that all available events be consumed when an event is detected,
     |      otherwise the read event will not trigger again.
     |      
     |      .. versionadded:: 17.0
     |  
     |  get_hwm(self) -> int
     |      Get the High Water Mark.
     |      
     |      On libzmq ≥ 3, this gets SNDHWM if available, otherwise RCVHWM
     |  
     |  get_monitor_socket(self: ~T, events: Union[int, NoneType] = None, addr: Union[str, NoneType] = None) -> ~T
     |      Return a connected PAIR socket ready to receive the event notifications.
     |      
     |      .. versionadded:: libzmq-4.0
     |      .. versionadded:: 14.0
     |      
     |      Parameters
     |      ----------
     |      events : int [default: ZMQ_EVENT_ALL]
     |          The bitmask defining which events are wanted.
     |      addr :  string [default: None]
     |          The optional endpoint for the monitoring sockets.
     |      
     |      Returns
     |      -------
     |      socket :  (PAIR)
     |          The socket is already connected and ready to receive messages.
     |  
     |  get_string(self, option: int, encoding='utf-8') -> str
     |      Get the value of a socket option.
     |      
     |      See the 0MQ documentation for details on specific options.
     |      
     |      Parameters
     |      ----------
     |      option : int
     |          The option to retrieve.
     |      
     |      Returns
     |      -------
     |      optval : str
     |          The value of the option as a unicode string.
     |  
     |  getsockopt = get(self, option)
     |  
     |  getsockopt_string = get_string(self, option: int, encoding='utf-8') -> str
     |  
     |  getsockopt_unicode = get_string(self, option: int, encoding='utf-8') -> str
     |  
     |  poll(self, timeout=None, flags=<PollEvent.POLLIN: 1>) -> int
     |      Poll the socket for events.
     |      See :class:`Poller` to wait for multiple sockets at once.
     |      
     |      Parameters
     |      ----------
     |      timeout : int [default: None]
     |          The timeout (in milliseconds) to wait for an event. If unspecified
     |          (or specified None), will wait forever for an event.
     |      flags : int [default: POLLIN]
     |          POLLIN, POLLOUT, or POLLIN|POLLOUT. The event flags to poll for.
     |      
     |      Returns
     |      -------
     |      event_mask : int
     |          The poll event mask (POLLIN, POLLOUT),
     |          0 if the timeout was reached without an event.
     |  
     |  recv_json(self, flags: int = 0, **kwargs) -> Union[List, str, int, float, Dict]
     |      Receive a Python object as a message using json to serialize.
     |      
     |      Keyword arguments are passed on to json.loads
     |      
     |      Parameters
     |      ----------
     |      flags : int
     |          Any valid flags for :func:`Socket.recv`.
     |      
     |      Returns
     |      -------
     |      obj : Python object
     |          The Python object that arrives as a message.
     |      
     |      Raises
     |      ------
     |      ZMQError
     |          for any of the reasons :func:`~Socket.recv` might fail
     |  
     |  recv_multipart(self, flags: int = 0, copy: bool = True, track: bool = False) -> Union[List[zmq.backend.cython.message.Frame], List[bytes]]
     |      Receive a multipart message as a list of bytes or Frame objects
     |      
     |      Parameters
     |      ----------
     |      flags : int, optional
     |          Any valid flags for :func:`Socket.recv`.
     |      copy : bool, optional
     |          Should the message frame(s) be received in a copying or non-copying manner?
     |          If False a Frame object is returned for each part, if True a copy of
     |          the bytes is made for each frame.
     |      track : bool, optional
     |          Should the message frame(s) be tracked for notification that ZMQ has
     |          finished with it? (ignored if copy=True)
     |      
     |      Returns
     |      -------
     |      msg_parts : list
     |          A list of frames in the multipart message; either Frames or bytes,
     |          depending on `copy`.
     |      
     |      Raises
     |      ------
     |      ZMQError
     |          for any of the reasons :func:`~Socket.recv` might fail
     |  
     |  recv_pyobj(self, flags: int = 0) -> Any
     |      Receive a Python object as a message using pickle to serialize.
     |      
     |      Parameters
     |      ----------
     |      flags : int
     |          Any valid flags for :func:`Socket.recv`.
     |      
     |      Returns
     |      -------
     |      obj : Python object
     |          The Python object that arrives as a message.
     |      
     |      Raises
     |      ------
     |      ZMQError
     |          for any of the reasons :func:`~Socket.recv` might fail
     |  
     |  recv_serialized(self, deserialize, flags=0, copy=True)
     |      Receive a message with a custom deserialization function.
     |      
     |      .. versionadded:: 17
     |      
     |      Parameters
     |      ----------
     |      deserialize : callable
     |          The deserialization function to use.
     |          deserialize will be called with one argument: the list of frames
     |          returned by recv_multipart() and can return any object.
     |      flags : int, optional
     |          Any valid flags for :func:`Socket.recv`.
     |      copy : bool, optional
     |          Whether to recv bytes or Frame objects.
     |      
     |      Returns
     |      -------
     |      obj : object
     |          The object returned by the deserialization function.
     |      
     |      Raises
     |      ------
     |      ZMQError
     |          for any of the reasons :func:`~Socket.recv` might fail
     |  
     |  recv_string(self, flags: int = 0, encoding: str = 'utf-8') -> str
     |      Receive a unicode string, as sent by send_string.
     |      
     |      Parameters
     |      ----------
     |      flags : int
     |          Any valid flags for :func:`Socket.recv`.
     |      encoding : str [default: 'utf-8']
     |          The encoding to be used
     |      
     |      Returns
     |      -------
     |      s : str
     |          The Python unicode string that arrives as encoded bytes.
     |      
     |      Raises
     |      ------
     |      ZMQError
     |          for any of the reasons :func:`~Socket.recv` might fail
     |  
     |  recv_unicode = recv_string(self, flags: int = 0, encoding: str = 'utf-8') -> str
     |  
     |  send(self, data: Any, flags: int = 0, copy: bool = True, track: bool = False, routing_id: Union[int, NoneType] = None, group: Union[str, NoneType] = None) -> Union[ForwardRef('zmq.MessageTracker'), NoneType]
     |      Send a single zmq message frame on this socket.
     |      
     |      This queues the message to be sent by the IO thread at a later time.
     |      
     |      With flags=NOBLOCK, this raises :class:`ZMQError` if the queue is full;
     |      otherwise, this waits until space is available.
     |      See :class:`Poller` for more general non-blocking I/O.
     |      
     |      Parameters
     |      ----------
     |      data : bytes, Frame, memoryview
     |          The content of the message. This can be any object that provides
     |          the Python buffer API (i.e. `memoryview(data)` can be called).
     |      flags : int
     |          0, NOBLOCK, SNDMORE, or NOBLOCK|SNDMORE.
     |      copy : bool
     |          Should the message be sent in a copying or non-copying manner.
     |      track : bool
     |          Should the message be tracked for notification that ZMQ has
     |          finished with it? (ignored if copy=True)
     |      routing_id : int
     |          For use with SERVER sockets
     |      group : str
     |          For use with RADIO sockets
     |      
     |      Returns
     |      -------
     |      None : if `copy` or not track
     |          None if message was sent, raises an exception otherwise.
     |      MessageTracker : if track and not copy
     |          a MessageTracker object, whose `pending` property will
     |          be True until the send is completed.
     |      
     |      Raises
     |      ------
     |      TypeError
     |          If a unicode object is passed
     |      ValueError
     |          If `track=True`, but an untracked Frame is passed.
     |      ZMQError
     |          If the send does not succeed for any reason (including
     |          if NOBLOCK is set and the outgoing queue is full).
     |      
     |      
     |      .. versionchanged:: 17.0
     |      
     |          DRAFT support for routing_id and group arguments.
     |  
     |  send_json(self, obj: Any, flags: int = 0, **kwargs) -> None
     |      Send a Python object as a message using json to serialize.
     |      
     |      Keyword arguments are passed on to json.dumps
     |      
     |      Parameters
     |      ----------
     |      obj : Python object
     |          The Python object to send
     |      flags : int
     |          Any valid flags for :func:`Socket.send`
     |  
     |  send_multipart(self, msg_parts: Sequence, flags: int = 0, copy: bool = True, track: bool = False, **kwargs)
     |      Send a sequence of buffers as a multipart message.
     |      
     |      The zmq.SNDMORE flag is added to all msg parts before the last.
     |      
     |      Parameters
     |      ----------
     |      msg_parts : iterable
     |          A sequence of objects to send as a multipart message. Each element
     |          can be any sendable object (Frame, bytes, buffer-providers)
     |      flags : int, optional
     |          Any valid flags for :func:`Socket.send`.
     |          SNDMORE is added automatically for frames before the last.
     |      copy : bool, optional
     |          Should the frame(s) be sent in a copying or non-copying manner.
     |          If copy=False, frames smaller than self.copy_threshold bytes
     |          will be copied anyway.
     |      track : bool, optional
     |          Should the frame(s) be tracked for notification that ZMQ has
     |          finished with it (ignored if copy=True).
     |      
     |      Returns
     |      -------
     |      None : if copy or not track
     |      MessageTracker : if track and not copy
     |          a MessageTracker object, whose `pending` property will
     |          be True until the last send is completed.
     |  
     |  send_pyobj(self, obj: Any, flags: int = 0, protocol: int = 4, **kwargs) -> Union[zmq.backend.cython.message.Frame, NoneType]
     |      Send a Python object as a message using pickle to serialize.
     |      
     |      Parameters
     |      ----------
     |      obj : Python object
     |          The Python object to send.
     |      flags : int
     |          Any valid flags for :func:`Socket.send`.
     |      protocol : int
     |          The pickle protocol number to use. The default is pickle.DEFAULT_PROTOCOL
     |          where defined, and pickle.HIGHEST_PROTOCOL elsewhere.
     |  
     |  send_serialized(self, msg, serialize, flags=0, copy=True, **kwargs)
     |      Send a message with a custom serialization function.
     |      
     |      .. versionadded:: 17
     |      
     |      Parameters
     |      ----------
     |      msg : The message to be sent. Can be any object serializable by `serialize`.
     |      serialize : callable
     |          The serialization function to use.
     |          serialize(msg) should return an iterable of sendable message frames
     |          (e.g. bytes objects), which will be passed to send_multipart.
     |      flags : int, optional
     |          Any valid flags for :func:`Socket.send`.
     |      copy : bool, optional
     |          Whether to copy the frames.
     |  
     |  send_string(self, u: str, flags: int = 0, copy: bool = True, encoding: str = 'utf-8', **kwargs) -> Union[ForwardRef('zmq.Frame'), NoneType]
     |      Send a Python unicode string as a message with an encoding.
     |      
     |      0MQ communicates with raw bytes, so you must encode/decode
     |      text (str) around 0MQ.
     |      
     |      Parameters
     |      ----------
     |      u : str
     |          The unicode string to send.
     |      flags : int, optional
     |          Any valid flags for :func:`Socket.send`.
     |      encoding : str [default: 'utf-8']
     |          The encoding to be used
     |  
     |  send_unicode = send_string(self, u: str, flags: int = 0, copy: bool = True, encoding: str = 'utf-8', **kwargs) -> Union[ForwardRef('zmq.Frame'), NoneType]
     |  
     |  set_hwm(self, value: int) -> None
     |      Set the High Water Mark.
     |      
     |      On libzmq ≥ 3, this sets both SNDHWM and RCVHWM
     |      
     |      
     |      .. warning::
     |      
     |          New values only take effect for subsequent socket
     |          bind/connects.
     |  
     |  set_string(self, option: int, optval: str, encoding='utf-8') -> None
     |      Set socket options with a unicode object.
     |      
     |      This is simply a wrapper for setsockopt to protect from encoding ambiguity.
     |      
     |      See the 0MQ documentation for details on specific options.
     |      
     |      Parameters
     |      ----------
     |      option : int
     |          The name of the option to set. Can be any of: SUBSCRIBE,
     |          UNSUBSCRIBE, IDENTITY
     |      optval : str
     |          The value of the option to set.
     |      encoding : str
     |          The encoding to be used, default is utf8
     |  
     |  setsockopt = set(self, option, optval)
     |  
     |  setsockopt_string = set_string(self, option: int, optval: str, encoding='utf-8') -> None
     |  
     |  setsockopt_unicode = set_string(self, option: int, optval: str, encoding='utf-8') -> None
     |  
     |  subscribe(self, topic: Union[str, bytes]) -> None
     |      Subscribe to a topic
     |      
     |      Only for SUB sockets.
     |      
     |      .. versionadded:: 15.3
     |  
     |  unsubscribe(self, topic: Union[str, bytes]) -> None
     |      Unsubscribe from a topic
     |      
     |      Only for SUB sockets.
     |      
     |      .. versionadded:: 15.3
     |  
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |  
     |  shadow(address: int) -> ~T from builtins.type
     |      Shadow an existing libzmq socket
     |      
     |      address is the integer address of the libzmq socket
     |      or an FFI pointer to it.
     |      
     |      .. versionadded:: 14.1
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |  
     |  socket_type
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  hwm
     |      Property for High Water Mark.
     |      
     |      Setting hwm sets both SNDHWM and RCVHWM as appropriate.
     |      It gets SNDHWM if available, otherwise RCVHWM.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __orig_bases__ = (<class 'zmq.backend.cython.socket.Socket'>, <class '...
     |  
     |  __parameters__ = (~ST,)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.backend.cython.socket.Socket:
     |  
     |  __reduce__ = __reduce_cython__(...)
     |  
     |  __setstate__ = __setstate_cython__(...)
     |  
     |  disconnect(self, addr)
     |      s.disconnect(addr)
     |      
     |      Disconnect from a remote 0MQ socket (undoes a call to connect).
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      
     |      Parameters
     |      ----------
     |      addr : str
     |          The address string. This has the form 'protocol://interface:port',
     |          for example 'tcp://127.0.0.1:5555'. Protocols supported are
     |          tcp, udp, pgm, inproc and ipc. If the address is unicode, it is
     |          encoded to utf-8 first.
     |  
     |  get(self, option)
     |      s.get(option)
     |      
     |      Get the value of a socket option.
     |      
     |      See the 0MQ API documentation for details on specific options.
     |      
     |      Parameters
     |      ----------
     |      option : int
     |          The option to get.  Available values will depend on your
     |          version of libzmq.  Examples include::
     |      
     |              zmq.IDENTITY, HWM, LINGER, FD, EVENTS
     |      
     |      Returns
     |      -------
     |      optval : int or bytes
     |          The value of the option as a bytestring or int.
     |  
     |  join(self, group)
     |      join(group)
     |      
     |      Join a RADIO-DISH group
     |      
     |      Only for DISH sockets.
     |      
     |      libzmq and pyzmq must have been built with ZMQ_BUILD_DRAFT_API
     |      
     |      .. versionadded:: 17
     |  
     |  leave(self, group)
     |      leave(group)
     |      
     |      Leave a RADIO-DISH group
     |      
     |      Only for DISH sockets.
     |      
     |      libzmq and pyzmq must have been built with ZMQ_BUILD_DRAFT_API
     |      
     |      .. versionadded:: 17
     |  
     |  monitor(self, addr, events)
     |      s.monitor(addr, flags)
     |      
     |      Start publishing socket events on inproc.
     |      See libzmq docs for zmq_monitor for details.
     |      
     |      While this function is available from libzmq 3.2,
     |      pyzmq cannot parse monitor messages from libzmq prior to 4.0.
     |      
     |      .. versionadded: libzmq-3.2
     |      .. versionadded: 14.0
     |      
     |      Parameters
     |      ----------
     |      addr : str
     |          The inproc url used for monitoring. Passing None as
     |          the addr will cause an existing socket monitor to be
     |          deregistered.
     |      events : int [default: zmq.EVENT_ALL]
     |          The zmq event bitmask for which events will be sent to the monitor.
     |  
     |  recv(self, flags, copy, track)
     |      s.recv(flags=0, copy=True, track=False)
     |      
     |      Receive a message.
     |      
     |      With flags=NOBLOCK, this raises :class:`ZMQError` if no messages have
     |      arrived; otherwise, this waits until a message arrives.
     |      See :class:`Poller` for more general non-blocking I/O.
     |      
     |      Parameters
     |      ----------
     |      flags : int
     |          0 or NOBLOCK.
     |      copy : bool
     |          Should the message be received in a copying or non-copying manner?
     |          If False a Frame object is returned, if True a string copy of
     |          message is returned.
     |      track : bool
     |          Should the message be tracked for notification that ZMQ has
     |          finished with it? (ignored if copy=True)
     |      
     |      Returns
     |      -------
     |      msg : bytes or Frame
     |          The received message frame.  If `copy` is False, then it will be a Frame,
     |          otherwise it will be bytes.
     |      
     |      Raises
     |      ------
     |      ZMQError
     |          for any of the reasons zmq_msg_recv might fail (including if
     |          NOBLOCK is set and no new messages have arrived).
     |  
     |  set(self, option, optval)
     |      s.set(option, optval)
     |      
     |      Set socket options.
     |      
     |      See the 0MQ API documentation for details on specific options.
     |      
     |      Parameters
     |      ----------
     |      option : int
     |          The option to set.  Available values will depend on your
     |          version of libzmq.  Examples include::
     |      
     |              zmq.SUBSCRIBE, UNSUBSCRIBE, IDENTITY, HWM, LINGER, FD
     |      
     |      optval : int or bytes
     |          The value of the option to set.
     |      
     |      Notes
     |      -----
     |      .. warning::
     |      
     |          All options other than zmq.SUBSCRIBE, zmq.UNSUBSCRIBE and
     |          zmq.LINGER only take effect for subsequent socket bind/connects.
     |  
     |  unbind(self, addr)
     |      s.unbind(addr)
     |      
     |      Unbind from an address (undoes a call to bind).
     |      
     |      .. versionadded:: libzmq-3.2
     |      .. versionadded:: 13.0
     |      
     |      Parameters
     |      ----------
     |      addr : str
     |          The address string. This has the form 'protocol://interface:port',
     |          for example 'tcp://127.0.0.1:5555'. Protocols supported are
     |          tcp, udp, pgm, inproc and ipc. If the address is unicode, it is
     |          encoded to utf-8 first.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from zmq.backend.cython.socket.Socket:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from zmq.backend.cython.socket.Socket:
     |  
     |  closed
     |  
     |  context
     |  
     |  copy_threshold
     |  
     |  underlying
     |      The address of the underlying libzmq socket
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from zmq.backend.cython.socket.Socket:
     |  
     |  __pyx_vtable__ = <capsule object NULL>
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from zmq.sugar.attrsettr.AttributeSetter:
     |  
     |  __getattr__(self, key: str) -> Union[str, bytes, int]
     |      get zmq options by attribute
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from zmq.sugar.attrsettr.AttributeSetter:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |  
     |  __class_getitem__(params) from builtins.type
     |  
     |  __init_subclass__(*args, **kwargs) from builtins.type
     |      This method is called when a class is subclassed.
     |      
     |      The default implementation does nothing. It may be
     |      overridden to extend subclasses.
    
    class SocketOption(enum.IntEnum)
     |  SocketOption(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  Options for Socket.get/set
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      SocketOption
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  AFFINITY = <SocketOption.AFFINITY: 4>
     |  
     |  BACKLOG = <SocketOption.BACKLOG: 19>
     |  
     |  BINDTODEVICE = <SocketOption.BINDTODEVICE: 92>
     |  
     |  BLOCKY = <SocketOption.BLOCKY: 70>
     |  
     |  CONFLATE = <SocketOption.CONFLATE: 54>
     |  
     |  CONNECT_ROUTING_ID = <SocketOption.CONNECT_ROUTING_ID: 61>
     |  
     |  CONNECT_TIMEOUT = <SocketOption.CONNECT_TIMEOUT: 79>
     |  
     |  CURVE_PUBLICKEY = <SocketOption.CURVE_PUBLICKEY: 48>
     |  
     |  CURVE_SECRETKEY = <SocketOption.CURVE_SECRETKEY: 49>
     |  
     |  CURVE_SERVER = <SocketOption.CURVE_SERVER: 47>
     |  
     |  CURVE_SERVERKEY = <SocketOption.CURVE_SERVERKEY: 50>
     |  
     |  DISCONNECT_MSG = <SocketOption.DISCONNECT_MSG: 111>
     |  
     |  EVENTS = <SocketOption.EVENTS: 15>
     |  
     |  FD = <SocketOption.FD: 14>
     |  
     |  GSSAPI_PLAINTEXT = <SocketOption.GSSAPI_PLAINTEXT: 65>
     |  
     |  GSSAPI_PRINCIPAL = <SocketOption.GSSAPI_PRINCIPAL: 63>
     |  
     |  GSSAPI_PRINCIPAL_NAMETYPE = <SocketOption.GSSAPI_PRINCIPAL_NAMETYPE: 9...
     |  
     |  GSSAPI_SERVER = <SocketOption.GSSAPI_SERVER: 62>
     |  
     |  GSSAPI_SERVICE_PRINCIPAL = <SocketOption.GSSAPI_SERVICE_PRINCIPAL: 64>
     |  
     |  GSSAPI_SERVICE_PRINCIPAL_NAMETYPE = <SocketOption.GSSAPI_SERVICE_PRINC...
     |  
     |  HANDSHAKE_IVL = <SocketOption.HANDSHAKE_IVL: 66>
     |  
     |  HEARTBEAT_IVL = <SocketOption.HEARTBEAT_IVL: 75>
     |  
     |  HEARTBEAT_TIMEOUT = <SocketOption.HEARTBEAT_TIMEOUT: 77>
     |  
     |  HEARTBEAT_TTL = <SocketOption.HEARTBEAT_TTL: 76>
     |  
     |  HELLO_MSG = <SocketOption.HELLO_MSG: 110>
     |  
     |  HWM = <SocketOption.HWM: 1>
     |  
     |  IMMEDIATE = <SocketOption.IMMEDIATE: 39>
     |  
     |  INVERT_MATCHING = <SocketOption.INVERT_MATCHING: 74>
     |  
     |  IN_BATCH_SIZE = <SocketOption.IN_BATCH_SIZE: 101>
     |  
     |  IPC_FILTER_GID = <SocketOption.IPC_FILTER_GID: 60>
     |  
     |  IPC_FILTER_PID = <SocketOption.IPC_FILTER_PID: 58>
     |  
     |  IPC_FILTER_UID = <SocketOption.IPC_FILTER_UID: 59>
     |  
     |  IPV4ONLY = <SocketOption.IPV4ONLY: 31>
     |  
     |  IPV6 = <SocketOption.IPV6: 42>
     |  
     |  LAST_ENDPOINT = <SocketOption.LAST_ENDPOINT: 32>
     |  
     |  LINGER = <SocketOption.LINGER: 17>
     |  
     |  LOOPBACK_FASTPATH = <SocketOption.LOOPBACK_FASTPATH: 94>
     |  
     |  MAXMSGSIZE = <SocketOption.MAXMSGSIZE: 22>
     |  
     |  MECHANISM = <SocketOption.MECHANISM: 43>
     |  
     |  METADATA = <SocketOption.METADATA: 95>
     |  
     |  MULTICAST_HOPS = <SocketOption.MULTICAST_HOPS: 25>
     |  
     |  MULTICAST_LOOP = <SocketOption.MULTICAST_LOOP: 96>
     |  
     |  MULTICAST_MAXTPDU = <SocketOption.MULTICAST_MAXTPDU: 84>
     |  
     |  ONLY_FIRST_SUBSCRIBE = <SocketOption.ONLY_FIRST_SUBSCRIBE: 108>
     |  
     |  OUT_BATCH_SIZE = <SocketOption.OUT_BATCH_SIZE: 102>
     |  
     |  PLAIN_PASSWORD = <SocketOption.PLAIN_PASSWORD: 46>
     |  
     |  PLAIN_SERVER = <SocketOption.PLAIN_SERVER: 44>
     |  
     |  PLAIN_USERNAME = <SocketOption.PLAIN_USERNAME: 45>
     |  
     |  PRIORITY = <SocketOption.PRIORITY: 112>
     |  
     |  PROBE_ROUTER = <SocketOption.PROBE_ROUTER: 51>
     |  
     |  RATE = <SocketOption.RATE: 8>
     |  
     |  RCVBUF = <SocketOption.RCVBUF: 12>
     |  
     |  RCVHWM = <SocketOption.RCVHWM: 24>
     |  
     |  RCVMORE = <SocketOption.RCVMORE: 13>
     |  
     |  RCVTIMEO = <SocketOption.RCVTIMEO: 27>
     |  
     |  RECONNECT_IVL = <SocketOption.RECONNECT_IVL: 18>
     |  
     |  RECONNECT_IVL_MAX = <SocketOption.RECONNECT_IVL_MAX: 21>
     |  
     |  RECONNECT_STOP = <SocketOption.RECONNECT_STOP: 109>
     |  
     |  RECOVERY_IVL = <SocketOption.RECOVERY_IVL: 9>
     |  
     |  REQ_CORRELATE = <SocketOption.REQ_CORRELATE: 52>
     |  
     |  REQ_RELAXED = <SocketOption.REQ_RELAXED: 53>
     |  
     |  ROUTER_HANDOVER = <SocketOption.ROUTER_HANDOVER: 56>
     |  
     |  ROUTER_MANDATORY = <SocketOption.ROUTER_MANDATORY: 33>
     |  
     |  ROUTER_NOTIFY = <SocketOption.ROUTER_NOTIFY: 97>
     |  
     |  ROUTER_RAW = <SocketOption.ROUTER_RAW: 41>
     |  
     |  ROUTING_ID = <SocketOption.ROUTING_ID: 5>
     |  
     |  SNDBUF = <SocketOption.SNDBUF: 11>
     |  
     |  SNDHWM = <SocketOption.SNDHWM: 23>
     |  
     |  SNDTIMEO = <SocketOption.SNDTIMEO: 28>
     |  
     |  SOCKS_PASSWORD = <SocketOption.SOCKS_PASSWORD: 100>
     |  
     |  SOCKS_PROXY = <SocketOption.SOCKS_PROXY: 68>
     |  
     |  SOCKS_USERNAME = <SocketOption.SOCKS_USERNAME: 99>
     |  
     |  STREAM_NOTIFY = <SocketOption.STREAM_NOTIFY: 73>
     |  
     |  SUBSCRIBE = <SocketOption.SUBSCRIBE: 6>
     |  
     |  TCP_ACCEPT_FILTER = <SocketOption.TCP_ACCEPT_FILTER: 38>
     |  
     |  TCP_KEEPALIVE = <SocketOption.TCP_KEEPALIVE: 34>
     |  
     |  TCP_KEEPALIVE_CNT = <SocketOption.TCP_KEEPALIVE_CNT: 35>
     |  
     |  TCP_KEEPALIVE_IDLE = <SocketOption.TCP_KEEPALIVE_IDLE: 36>
     |  
     |  TCP_KEEPALIVE_INTVL = <SocketOption.TCP_KEEPALIVE_INTVL: 37>
     |  
     |  TCP_MAXRT = <SocketOption.TCP_MAXRT: 80>
     |  
     |  THREAD_SAFE = <SocketOption.THREAD_SAFE: 81>
     |  
     |  TOS = <SocketOption.TOS: 57>
     |  
     |  TYPE = <SocketOption.TYPE: 16>
     |  
     |  UNSUBSCRIBE = <SocketOption.UNSUBSCRIBE: 7>
     |  
     |  USE_FD = <SocketOption.USE_FD: 89>
     |  
     |  VMCI_BUFFER_MAX_SIZE = <SocketOption.VMCI_BUFFER_MAX_SIZE: 87>
     |  
     |  VMCI_BUFFER_MIN_SIZE = <SocketOption.VMCI_BUFFER_MIN_SIZE: 86>
     |  
     |  VMCI_BUFFER_SIZE = <SocketOption.VMCI_BUFFER_SIZE: 85>
     |  
     |  VMCI_CONNECT_TIMEOUT = <SocketOption.VMCI_CONNECT_TIMEOUT: 88>
     |  
     |  WSS_CERT_PEM = <SocketOption.WSS_CERT_PEM: 104>
     |  
     |  WSS_HOSTNAME = <SocketOption.WSS_HOSTNAME: 106>
     |  
     |  WSS_KEY_PEM = <SocketOption.WSS_KEY_PEM: 103>
     |  
     |  WSS_TRUST_PEM = <SocketOption.WSS_TRUST_PEM: 105>
     |  
     |  WSS_TRUST_SYSTEM = <SocketOption.WSS_TRUST_SYSTEM: 107>
     |  
     |  XPUB_MANUAL = <SocketOption.XPUB_MANUAL: 71>
     |  
     |  XPUB_MANUAL_LAST_VALUE = <SocketOption.XPUB_MANUAL_LAST_VALUE: 98>
     |  
     |  XPUB_NODROP = <SocketOption.XPUB_NODROP: 69>
     |  
     |  XPUB_VERBOSE = <SocketOption.XPUB_VERBOSE: 40>
     |  
     |  XPUB_VERBOSER = <SocketOption.XPUB_VERBOSER: 78>
     |  
     |  XPUB_WELCOME_MSG = <SocketOption.XPUB_WELCOME_MSG: 72>
     |  
     |  ZAP_DOMAIN = <SocketOption.ZAP_DOMAIN: 55>
     |  
     |  ZAP_ENFORCE_DOMAIN = <SocketOption.ZAP_ENFORCE_DOMAIN: 93>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class SocketType(enum.IntEnum)
     |  SocketType(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |  
     |  zmq socket types
     |  
     |  .. versionadded:: 23
     |  
     |  Method resolution order:
     |      SocketType
     |      enum.IntEnum
     |      builtins.int
     |      enum.Enum
     |      builtins.object
     |  
     |  Data and other attributes defined here:
     |  
     |  CHANNEL = <SocketType.CHANNEL: 20>
     |  
     |  CLIENT = <SocketType.CLIENT: 13>
     |  
     |  DEALER = <SocketType.DEALER: 5>
     |  
     |  DGRAM = <SocketType.DGRAM: 18>
     |  
     |  DISH = <SocketType.DISH: 15>
     |  
     |  GATHER = <SocketType.GATHER: 16>
     |  
     |  PAIR = <SocketType.PAIR: 0>
     |  
     |  PEER = <SocketType.PEER: 19>
     |  
     |  PUB = <SocketType.PUB: 1>
     |  
     |  PULL = <SocketType.PULL: 7>
     |  
     |  PUSH = <SocketType.PUSH: 8>
     |  
     |  RADIO = <SocketType.RADIO: 14>
     |  
     |  REP = <SocketType.REP: 4>
     |  
     |  REQ = <SocketType.REQ: 3>
     |  
     |  ROUTER = <SocketType.ROUTER: 6>
     |  
     |  SCATTER = <SocketType.SCATTER: 17>
     |  
     |  SERVER = <SocketType.SERVER: 12>
     |  
     |  STREAM = <SocketType.STREAM: 11>
     |  
     |  SUB = <SocketType.SUB: 2>
     |  
     |  XPUB = <SocketType.XPUB: 9>
     |  
     |  XSUB = <SocketType.XSUB: 10>
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |  
     |  name
     |      The name of the Enum member.
     |  
     |  value
     |      The value of the Enum member.
     |  
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |  
     |  __members__
     |      Returns a mapping of member name->value.
     |      
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.
    
    class Stopwatch(builtins.object)
     |  Deprecated zmq.Stopwatch implementation
     |  
     |  You can use Python's builtin timers (time.monotonic, etc.).
     |  
     |  Methods defined here:
     |  
     |  __init__(self)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  start(self)
     |      Start the counter
     |  
     |  stop(self)
     |      Return time since start in microseconds
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
    
    class ZMQBaseError(builtins.Exception)
     |  Base exception class for 0MQ errors in Python.
     |  
     |  Method resolution order:
     |      ZMQBaseError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data descriptors defined here:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  __str__(self, /)
     |      Return str(self).
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class ZMQBindError(ZMQBaseError)
     |  An error for ``Socket.bind_to_random_port()``.
     |  
     |  See Also
     |  --------
     |  .Socket.bind_to_random_port
     |  
     |  Method resolution order:
     |      ZMQBindError
     |      ZMQBaseError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Data descriptors inherited from ZMQBaseError:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.Exception:
     |  
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __repr__(self, /)
     |      Return repr(self).
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  __str__(self, /)
     |      Return str(self).
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class ZMQError(ZMQBaseError)
     |  ZMQError(errno: Union[int, NoneType] = None, msg: Union[str, NoneType] = None)
     |  
     |  Wrap an errno style error.
     |  
     |  Parameters
     |  ----------
     |  errno : int
     |      The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
     |      used.
     |  msg : string
     |      Description of the error or None.
     |  
     |  Method resolution order:
     |      ZMQError
     |      ZMQBaseError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, errno: Union[int, NoneType] = None, msg: Union[str, NoneType] = None)
     |      Wrap an errno style error.
     |      
     |      Parameters
     |      ----------
     |      errno : int
     |          The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
     |          used.
     |      msg : string
     |          Description of the error or None.
     |  
     |  __repr__(self) -> str
     |      Return repr(self).
     |  
     |  __str__(self) -> str
     |      Return str(self).
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __annotations__ = {'errno': typing.Union[int, NoneType]}
     |  
     |  errno = None
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from ZMQBaseError:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args
    
    class ZMQVersionError(builtins.NotImplementedError)
     |  ZMQVersionError(min_version: str, msg: str = 'Feature')
     |  
     |  Raised when a feature is not provided by the linked version of libzmq.
     |  
     |  .. versionadded:: 14.2
     |  
     |  Method resolution order:
     |      ZMQVersionError
     |      builtins.NotImplementedError
     |      builtins.RuntimeError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |  
     |  Methods defined here:
     |  
     |  __init__(self, min_version: str, msg: str = 'Feature')
     |      Initialize self.  See help(type(self)) for accurate signature.
     |  
     |  __repr__(self)
     |      Return repr(self).
     |  
     |  __str__(self)
     |      Return str(self).
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  min_version = None
     |  
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.NotImplementedError:
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |  
     |  __delattr__(self, name, /)
     |      Implement delattr(self, name).
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __reduce__(...)
     |      Helper for pickle.
     |  
     |  __setattr__(self, name, value, /)
     |      Implement setattr(self, name, value).
     |  
     |  __setstate__(...)
     |  
     |  with_traceback(...)
     |      Exception.with_traceback(tb) --
     |      set self.__traceback__ to tb and return self.
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |  
     |  __cause__
     |      exception cause
     |  
     |  __context__
     |      exception context
     |  
     |  __dict__
     |  
     |  __suppress_context__
     |  
     |  __traceback__
     |  
     |  args

FUNCTIONS
    curve_keypair()
        generate a Z85 key pair for use with zmq.CURVE security
        
        Requires libzmq (≥ 4.0) to have been built with CURVE support.
        
        .. versionadded:: libzmq-4.0
        .. versionadded:: 14.0
        
        Returns
        -------
        (public, secret) : two bytestrings
            The public and private key pair as 40 byte z85-encoded bytestrings.
    
    curve_public(secret_key)
        Compute the public key corresponding to a secret key for use
        with zmq.CURVE security
        
        Requires libzmq (≥ 4.2) to have been built with CURVE support.
        
        Parameters
        ----------
        private
            The private key as a 40 byte z85-encoded bytestring
        Returns
        -------
        bytestring
            The public key as a 40 byte z85-encoded bytestring.
    
    device(device_type, frontend, backend=None)
        device(device_type, frontend, backend)
        
        Start a zeromq device.
        
        .. deprecated:: libzmq-3.2
            Use zmq.proxy
        
        Parameters
        ----------
        device_type : (QUEUE, FORWARDER, STREAMER)
            The type of device to start.
        frontend : Socket
            The Socket instance for the incoming traffic.
        backend : Socket
            The Socket instance for the outbound traffic.
    
    get_includes()
        Return a list of directories to include for linking against pyzmq with cython.
    
    has(capability)
        Check for zmq capability by name (e.g. 'ipc', 'curve')
        
        .. versionadded:: libzmq-4.1
        .. versionadded:: 14.1
    
    proxy(frontend, backend, capture=None)
        proxy(frontend, backend, capture)
        
        Start a zeromq proxy (replacement for device).
        
        .. versionadded:: libzmq-3.2
        .. versionadded:: 13.0
        
        Parameters
        ----------
        frontend : Socket
            The Socket instance for the incoming traffic.
        backend : Socket
            The Socket instance for the outbound traffic.
        capture : Socket (optional)
            The Socket instance for capturing traffic.
    
    proxy_steerable(frontend, backend, capture=None, control=None)
        proxy_steerable(frontend, backend, capture, control)
        
        Start a zeromq proxy with control flow.
        
        .. versionadded:: libzmq-4.1
        .. versionadded:: 18.0
        
        Parameters
        ----------
        frontend : Socket
            The Socket instance for the incoming traffic.
        backend : Socket
            The Socket instance for the outbound traffic.
        capture : Socket (optional)
            The Socket instance for capturing traffic.
        control : Socket (optional)
            The Socket instance for control flow.
    
    pyzmq_version() -> str
        return the version of pyzmq as a string
    
    pyzmq_version_info() -> Union[Tuple[int, int, int], Tuple[int, int, int, float]]
        return the pyzmq version as a tuple of at least three numbers
        
        If pyzmq is a development version, `inf` will be appended after the third integer.
    
    select(rlist: List, wlist: List, xlist: List, timeout: Union[float, NoneType] = None)
        select(rlist, wlist, xlist, timeout=None) -> (rlist, wlist, xlist)
        
        Return the result of poll as a lists of sockets ready for r/w/exception.
        
        This has the same interface as Python's built-in ``select.select()`` function.
        
        Parameters
        ----------
        timeout : float, int, optional
            The timeout in seconds. If None, no timeout (infinite). This is in seconds to be
            compatible with ``select.select()``.
        rlist : list of sockets/FDs
            sockets/FDs to be polled for read events
        wlist : list of sockets/FDs
            sockets/FDs to be polled for write events
        xlist : list of sockets/FDs
            sockets/FDs to be polled for error events
        
        Returns
        -------
        (rlist, wlist, xlist) : tuple of lists of sockets (length 3)
            Lists correspond to sockets available for read/write/error events respectively.
    
    strerror(errno)
        strerror(errno)
        
        Return the error string given the error number.
    
    zmq_errno()
        zmq_errno()
        
        Return the integer errno of the most recent zmq error.
    
    zmq_poll(sockets, timeout=-1)
        zmq_poll(sockets, timeout=-1)
        
        Poll a set of 0MQ sockets, native file descs. or sockets.
        
        Parameters
        ----------
        sockets : list of tuples of (socket, flags)
            Each element of this list is a two-tuple containing a socket
            and a flags. The socket may be a 0MQ socket or any object with
            a ``fileno()`` method. The flags can be zmq.POLLIN (for detecting
            for incoming messages), zmq.POLLOUT (for detecting that send is OK)
            or zmq.POLLIN|zmq.POLLOUT for detecting both.
        timeout : int
            The number of milliseconds to poll for. Negative means no timeout.
    
    zmq_version() -> str
        return the version of libzmq as a string
    
    zmq_version_info()
        zmq_version_info()
        
        Return the version of ZeroMQ itself as a 3-tuple of ints.

DATA
    AFFINITY = <SocketOption.AFFINITY: 4>
    BACKLOG = <SocketOption.BACKLOG: 19>
    BINDTODEVICE = <SocketOption.BINDTODEVICE: 92>
    BLOCKY = <SocketOption.BLOCKY: 70>
    CHANNEL = <SocketType.CHANNEL: 20>
    CLIENT = <SocketType.CLIENT: 13>
    CONFLATE = <SocketOption.CONFLATE: 54>
    CONNECT_RID = <SocketOption.CONNECT_ROUTING_ID: 61>
    CONNECT_ROUTING_ID = <SocketOption.CONNECT_ROUTING_ID: 61>
    CONNECT_TIMEOUT = <SocketOption.CONNECT_TIMEOUT: 79>
    COPY_THRESHOLD = 65536
    CURVE = <SecurityMechanism.CURVE: 2>
    CURVE_PUBLICKEY = <SocketOption.CURVE_PUBLICKEY: 48>
    CURVE_SECRETKEY = <SocketOption.CURVE_SECRETKEY: 49>
    CURVE_SERVER = <SocketOption.CURVE_SERVER: 47>
    CURVE_SERVERKEY = <SocketOption.CURVE_SERVERKEY: 50>
    DEALER = <SocketType.DEALER: 5>
    DELAY_ATTACH_ON_CONNECT = <SocketOption.IMMEDIATE: 39>
    DGRAM = <SocketType.DGRAM: 18>
    DISCONNECT_MSG = <SocketOption.DISCONNECT_MSG: 111>
    DISH = <SocketType.DISH: 15>
    DONTWAIT = <Flag.DONTWAIT: 1>
    DRAFT_API = False
    EADDRINUSE = <Errno.EADDRINUSE: 98>
    EADDRNOTAVAIL = <Errno.EADDRNOTAVAIL: 99>
    EAFNOSUPPORT = <Errno.EAFNOSUPPORT: 97>
    EAGAIN = <Errno.EAGAIN: 11>
    ECONNABORTED = <Errno.ECONNABORTED: 103>
    ECONNREFUSED = <Errno.ECONNREFUSED: 111>
    ECONNRESET = <Errno.ECONNRESET: 104>
    EFAULT = <Errno.EFAULT: 14>
    EFSM = <Errno.EFSM: 156384763>
    EHOSTUNREACH = <Errno.EHOSTUNREACH: 113>
    EINPROGRESS = <Errno.EINPROGRESS: 115>
    EINVAL = <Errno.EINVAL: 22>
    EMSGSIZE = <Errno.EMSGSIZE: 90>
    EMTHREAD = <Errno.EMTHREAD: 156384766>
    ENETDOWN = <Errno.ENETDOWN: 100>
    ENETRESET = <Errno.ENETRESET: 102>
    ENETUNREACH = <Errno.ENETUNREACH: 101>
    ENOBUFS = <Errno.ENOBUFS: 105>
    ENOCOMPATPROTO = <Errno.ENOCOMPATPROTO: 156384764>
    ENOTCONN = <Errno.ENOTCONN: 107>
    ENOTSOCK = <Errno.ENOTSOCK: 88>
    ENOTSUP = <Errno.ENOTSUP: 95>
    EPROTONOSUPPORT = <Errno.EPROTONOSUPPORT: 93>
    ETERM = <Errno.ETERM: 156384765>
    ETIMEDOUT = <Errno.ETIMEDOUT: 110>
    EVENTS = <SocketOption.EVENTS: 15>
    EVENT_ACCEPTED = <Event.ACCEPTED: 32>
    EVENT_ACCEPT_FAILED = <Event.ACCEPT_FAILED: 64>
    EVENT_ALL = <Event.ALL_V1: 65535>
    EVENT_ALL_V1 = <Event.ALL_V1: 65535>
    EVENT_ALL_V2 = <Event.ALL_V2: 131071>
    EVENT_BIND_FAILED = <Event.BIND_FAILED: 16>
    EVENT_CLOSED = <Event.CLOSED: 128>
    EVENT_CLOSE_FAILED = <Event.CLOSE_FAILED: 256>
    EVENT_CONNECTED = <Event.CONNECTED: 1>
    EVENT_CONNECT_DELAYED = <Event.CONNECT_DELAYED: 2>
    EVENT_CONNECT_RETRIED = <Event.CONNECT_RETRIED: 4>
    EVENT_DISCONNECTED = <Event.DISCONNECTED: 512>
    EVENT_HANDSHAKE_FAILED_AUTH = <Event.HANDSHAKE_FAILED_AUTH: 16384>
    EVENT_HANDSHAKE_FAILED_NO_DETAIL = <Event.HANDSHAKE_FAILED_NO_DETAIL: ...
    EVENT_HANDSHAKE_FAILED_PROTOCOL = <Event.HANDSHAKE_FAILED_PROTOCOL: 81...
    EVENT_HANDSHAKE_SUCCEEDED = <Event.HANDSHAKE_SUCCEEDED: 4096>
    EVENT_LISTENING = <Event.LISTENING: 8>
    EVENT_MONITOR_STOPPED = <Event.MONITOR_STOPPED: 1024>
    EVENT_PIPES_STATS = <Event.PIPES_STATS: 65536>
    FAIL_UNROUTABLE = <SocketOption.ROUTER_MANDATORY: 33>
    FD = <SocketOption.FD: 14>
    FORWARDER = <DeviceType.FORWARDER: 2>
    GATHER = <SocketType.GATHER: 16>
    GSSAPI = <SecurityMechanism.GSSAPI: 3>
    GSSAPI_PLAINTEXT = <SocketOption.GSSAPI_PLAINTEXT: 65>
    GSSAPI_PRINCIPAL = <SocketOption.GSSAPI_PRINCIPAL: 63>
    GSSAPI_PRINCIPAL_NAMETYPE = <SocketOption.GSSAPI_PRINCIPAL_NAMETYPE: 9...
    GSSAPI_SERVER = <SocketOption.GSSAPI_SERVER: 62>
    GSSAPI_SERVICE_PRINCIPAL = <SocketOption.GSSAPI_SERVICE_PRINCIPAL: 64>
    GSSAPI_SERVICE_PRINCIPAL_NAMETYPE = <SocketOption.GSSAPI_SERVICE_PRINC...
    HANDSHAKE_IVL = <SocketOption.HANDSHAKE_IVL: 66>
    HEARTBEAT_IVL = <SocketOption.HEARTBEAT_IVL: 75>
    HEARTBEAT_TIMEOUT = <SocketOption.HEARTBEAT_TIMEOUT: 77>
    HEARTBEAT_TTL = <SocketOption.HEARTBEAT_TTL: 76>
    HELLO_MSG = <SocketOption.HELLO_MSG: 110>
    HWM = <SocketOption.HWM: 1>
    IDENTITY = <SocketOption.ROUTING_ID: 5>
    IMMEDIATE = <SocketOption.IMMEDIATE: 39>
    INVERT_MATCHING = <SocketOption.INVERT_MATCHING: 74>
    IN_BATCH_SIZE = <SocketOption.IN_BATCH_SIZE: 101>
    IO_THREADS = <ContextOption.IO_THREADS: 1>
    IPC_FILTER_GID = <SocketOption.IPC_FILTER_GID: 60>
    IPC_FILTER_PID = <SocketOption.IPC_FILTER_PID: 58>
    IPC_FILTER_UID = <SocketOption.IPC_FILTER_UID: 59>
    IPC_PATH_MAX_LEN = 107
    IPV4ONLY = <SocketOption.IPV4ONLY: 31>
    IPV6 = <SocketOption.IPV6: 42>
    LAST_ENDPOINT = <SocketOption.LAST_ENDPOINT: 32>
    LINGER = <SocketOption.LINGER: 17>
    LOOPBACK_FASTPATH = <SocketOption.LOOPBACK_FASTPATH: 94>
    MAXMSGSIZE = <SocketOption.MAXMSGSIZE: 22>
    MAX_MSGSZ = <ContextOption.MAX_MSGSZ: 5>
    MAX_SOCKETS = <ContextOption.MAX_SOCKETS: 2>
    MECHANISM = <SocketOption.MECHANISM: 43>
    METADATA = <SocketOption.METADATA: 95>
    MORE = <MessageOption.MORE: 1>
    MSG_T_SIZE = <ContextOption.MSG_T_SIZE: 6>
    MULTICAST_HOPS = <SocketOption.MULTICAST_HOPS: 25>
    MULTICAST_LOOP = <SocketOption.MULTICAST_LOOP: 96>
    MULTICAST_MAXTPDU = <SocketOption.MULTICAST_MAXTPDU: 84>
    NOBLOCK = <Flag.DONTWAIT: 1>
    NULL = <SecurityMechanism.NULL: 0>
    ONLY_FIRST_SUBSCRIBE = <SocketOption.ONLY_FIRST_SUBSCRIBE: 108>
    OUT_BATCH_SIZE = <SocketOption.OUT_BATCH_SIZE: 102>
    PAIR = <SocketType.PAIR: 0>
    PEER = <SocketType.PEER: 19>
    PLAIN = <SecurityMechanism.PLAIN: 1>
    PLAIN_PASSWORD = <SocketOption.PLAIN_PASSWORD: 46>
    PLAIN_SERVER = <SocketOption.PLAIN_SERVER: 44>
    PLAIN_USERNAME = <SocketOption.PLAIN_USERNAME: 45>
    POLLERR = <PollEvent.POLLERR: 4>
    POLLIN = <PollEvent.POLLIN: 1>
    POLLOUT = <PollEvent.POLLOUT: 2>
    POLLPRI = <PollEvent.POLLPRI: 8>
    PRIORITY = <SocketOption.PRIORITY: 112>
    PROBE_ROUTER = <SocketOption.PROBE_ROUTER: 51>
    PROTOCOL_ERROR_WS_UNSPECIFIED = <Event.PROTOCOL_ERROR_WS_UNSPECIFIED: ...
    PROTOCOL_ERROR_ZAP_BAD_REQUEST_ID = <Event.PROTOCOL_ERROR_ZAP_BAD_REQU...
    PROTOCOL_ERROR_ZAP_BAD_VERSION = <Event.PROTOCOL_ERROR_ZAP_BAD_VERSION...
    PROTOCOL_ERROR_ZAP_INVALID_METADATA = <Event.PROTOCOL_ERROR_ZAP_INVALI...
    PROTOCOL_ERROR_ZAP_INVALID_STATUS_CODE = <Event.PROTOCOL_ERROR_ZAP_INV...
    PROTOCOL_ERROR_ZAP_MALFORMED_REPLY = <Event.PROTOCOL_ERROR_ZAP_MALFORM...
    PROTOCOL_ERROR_ZAP_UNSPECIFIED = <Event.PROTOCOL_ERROR_ZAP_UNSPECIFIED...
    PROTOCOL_ERROR_ZMTP_CRYPTOGRAPHIC = <Event.PROTOCOL_ERROR_ZMTP_CRYPTOG...
    PROTOCOL_ERROR_ZMTP_INVALID_METADATA = <Event.PROTOCOL_ERROR_ZMTP_INVA...
    PROTOCOL_ERROR_ZMTP_INVALID_SEQUENCE = <Event.PROTOCOL_ERROR_ZMTP_INVA...
    PROTOCOL_ERROR_ZMTP_KEY_EXCHANGE = <Event.PROTOCOL_ERROR_ZMTP_KEY_EXCH...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_ERROR = <Event.PROTOCOL_ERROR_ZM...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_HELLO = <Event.PROTOCOL_ERROR_ZM...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_INITIATE = <Event.PROTOCOL_ERROR...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_MESSAGE = <Event.PROTOCOL_ERROR_...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_READY = <Event.PROTOCOL_ERROR_ZM...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_UNSPECIFIED = <Event.PROTOCOL_ER...
    PROTOCOL_ERROR_ZMTP_MALFORMED_COMMAND_WELCOME = <Event.PROTOCOL_ERROR_...
    PROTOCOL_ERROR_ZMTP_MECHANISM_MISMATCH = <Event.PROTOCOL_ERROR_ZMTP_ME...
    PROTOCOL_ERROR_ZMTP_UNEXPECTED_COMMAND = <Event.PROTOCOL_ERROR_ZMTP_UN...
    PROTOCOL_ERROR_ZMTP_UNSPECIFIED = <Event.PROTOCOL_ERROR_ZMTP_UNSPECIFI...
    PUB = <SocketType.PUB: 1>
    PULL = <SocketType.PULL: 7>
    PUSH = <SocketType.PUSH: 8>
    QUEUE = <DeviceType.QUEUE: 3>
    RADIO = <SocketType.RADIO: 14>
    RATE = <SocketOption.RATE: 8>
    RCVBUF = <SocketOption.RCVBUF: 12>
    RCVHWM = <SocketOption.RCVHWM: 24>
    RCVMORE = <SocketOption.RCVMORE: 13>
    RCVTIMEO = <SocketOption.RCVTIMEO: 27>
    RECONNECT_IVL = <SocketOption.RECONNECT_IVL: 18>
    RECONNECT_IVL_MAX = <SocketOption.RECONNECT_IVL_MAX: 21>
    RECONNECT_STOP = <SocketOption.RECONNECT_STOP: 109>
    RECOVERY_IVL = <SocketOption.RECOVERY_IVL: 9>
    REP = <SocketType.REP: 4>
    REQ = <SocketType.REQ: 3>
    REQ_CORRELATE = <SocketOption.REQ_CORRELATE: 52>
    REQ_RELAXED = <SocketOption.REQ_RELAXED: 53>
    ROUTER = <SocketType.ROUTER: 6>
    ROUTER_BEHAVIOR = <SocketOption.ROUTER_MANDATORY: 33>
    ROUTER_HANDOVER = <SocketOption.ROUTER_HANDOVER: 56>
    ROUTER_MANDATORY = <SocketOption.ROUTER_MANDATORY: 33>
    ROUTER_NOTIFY = <SocketOption.ROUTER_NOTIFY: 97>
    ROUTER_RAW = <SocketOption.ROUTER_RAW: 41>
    ROUTING_ID = <SocketOption.ROUTING_ID: 5>
    SCATTER = <SocketType.SCATTER: 17>
    SERVER = <SocketType.SERVER: 12>
    SHARED = <MessageOption.SHARED: 3>
    SNDBUF = <SocketOption.SNDBUF: 11>
    SNDHWM = <SocketOption.SNDHWM: 23>
    SNDMORE = <Flag.SNDMORE: 2>
    SNDTIMEO = <SocketOption.SNDTIMEO: 28>
    SOCKET_LIMIT = <ContextOption.SOCKET_LIMIT: 3>
    SOCKS_PASSWORD = <SocketOption.SOCKS_PASSWORD: 100>
    SOCKS_PROXY = <SocketOption.SOCKS_PROXY: 68>
    SOCKS_USERNAME = <SocketOption.SOCKS_USERNAME: 99>
    SRCFD = <MessageOption.SRCFD: 2>
    STREAM = <SocketType.STREAM: 11>
    STREAMER = <DeviceType.STREAMER: 1>
    STREAM_NOTIFY = <SocketOption.STREAM_NOTIFY: 73>
    SUB = <SocketType.SUB: 2>
    SUBSCRIBE = <SocketOption.SUBSCRIBE: 6>
    TCP_ACCEPT_FILTER = <SocketOption.TCP_ACCEPT_FILTER: 38>
    TCP_KEEPALIVE = <SocketOption.TCP_KEEPALIVE: 34>
    TCP_KEEPALIVE_CNT = <SocketOption.TCP_KEEPALIVE_CNT: 35>
    TCP_KEEPALIVE_IDLE = <SocketOption.TCP_KEEPALIVE_IDLE: 36>
    TCP_KEEPALIVE_INTVL = <SocketOption.TCP_KEEPALIVE_INTVL: 37>
    TCP_MAXRT = <SocketOption.TCP_MAXRT: 80>
    THREAD_AFFINITY_CPU_ADD = <ContextOption.THREAD_AFFINITY_CPU_ADD: 7>
    THREAD_AFFINITY_CPU_REMOVE = <ContextOption.THREAD_AFFINITY_CPU_REMOVE...
    THREAD_NAME_PREFIX = <ContextOption.THREAD_NAME_PREFIX: 9>
    THREAD_PRIORITY = <ContextOption.SOCKET_LIMIT: 3>
    THREAD_SAFE = <SocketOption.THREAD_SAFE: 81>
    THREAD_SCHED_POLICY = <ContextOption.THREAD_SCHED_POLICY: 4>
    TOS = <SocketOption.TOS: 57>
    TYPE = <SocketOption.TYPE: 16>
    UNSUBSCRIBE = <SocketOption.UNSUBSCRIBE: 7>
    USE_FD = <SocketOption.USE_FD: 89>
    VMCI_BUFFER_MAX_SIZE = <SocketOption.VMCI_BUFFER_MAX_SIZE: 87>
    VMCI_BUFFER_MIN_SIZE = <SocketOption.VMCI_BUFFER_MIN_SIZE: 86>
    VMCI_BUFFER_SIZE = <SocketOption.VMCI_BUFFER_SIZE: 85>
    VMCI_CONNECT_TIMEOUT = <SocketOption.VMCI_CONNECT_TIMEOUT: 88>
    WSS_CERT_PEM = <SocketOption.WSS_CERT_PEM: 104>
    WSS_HOSTNAME = <SocketOption.WSS_HOSTNAME: 106>
    WSS_KEY_PEM = <SocketOption.WSS_KEY_PEM: 103>
    WSS_TRUST_PEM = <SocketOption.WSS_TRUST_PEM: 105>
    WSS_TRUST_SYSTEM = <SocketOption.WSS_TRUST_SYSTEM: 107>
    XPUB = <SocketType.XPUB: 9>
    XPUB_MANUAL = <SocketOption.XPUB_MANUAL: 71>
    XPUB_MANUAL_LAST_VALUE = <SocketOption.XPUB_MANUAL_LAST_VALUE: 98>
    XPUB_NODROP = <SocketOption.XPUB_NODROP: 69>
    XPUB_VERBOSE = <SocketOption.XPUB_VERBOSE: 40>
    XPUB_VERBOSER = <SocketOption.XPUB_VERBOSER: 78>
    XPUB_WELCOME_MSG = <SocketOption.XPUB_WELCOME_MSG: 72>
    XREP = <SocketType.ROUTER: 6>
    XREQ = <SocketType.DEALER: 5>
    XSUB = <SocketType.XSUB: 10>
    ZAP_DOMAIN = <SocketOption.ZAP_DOMAIN: 55>
    ZAP_ENFORCE_DOMAIN = <SocketOption.ZAP_ENFORCE_DOMAIN: 93>
    _FINISHED_TRACKER = <zmq.sugar.tracker.MessageTracker object>
    __all__ = ['get_includes', 'COPY_THRESHOLD', 'DRAFT_API', 'ContextOpti...
    __revision__ = ''

VERSION
    23.2.0

FILE
    /home/ubuntu/miniconda3/envs/blueocean/lib/python3.8/site-packages/zmq/__init__.py


