code: def __init__(
      self, context=None, socket_type=-1, io_loop=None, **kwargs
  ):
      if isinstance(context, _zmq.Socket):
          context, from_socket = (None, context)
      else:
          from_socket = kwargs.pop("_from_socket", None)
      if from_socket is not None:
          super(_AsyncSocket, self).__init__(
              shadow=from_socket.underlying
          )
          self._shadow_sock = from_socket
      else:
          super(_AsyncSocket, self).__init__(
              context, socket_type, **kwargs
          )
          self._shadow_sock = _zmq.Socket.shadow(self.underlying)
      self.io_loop = io_loop or self._default_loop()
      self._recv_futures = deque()
      self._send_futures = deque()
      self._state = 0
      self._fd = self._shadow_sock.FD
      self._init_io_state()
  
imports: from collections import namedtuple, deque
  from itertools import chain
  from zmq import EVENTS, POLLOUT, POLLIN
  import zmq
label_desc: Use image node_id 1 to create a new _AsyncSocket object from inherited base classes: _zmq with example: obj = _AsyncSocket(context, socket_type, io_loop)