class_docstr: Future class to wrap async messages
code: def __init__(self, msg_id, header=None, *, track=False):
      super().__init__()
      self.msg_id = msg_id
      self.header = header or {"msg_type": "unknown_request"}
      self._evt = Event()
      self.track = track
      self._tracker = None
      self.tracker = Future()
      self.iopub_callbacks = []
      if not track:
          self.tracker.set_result(None)
      self.add_done_callback(lambda f: self._evt.set())
  
file_path: ipyparallel/ipyparallel/client/futures.py
imports: import sys
  from concurrent.futures import Future
  from threading import Event
  from tornado.log import app_log
label_desc: Use image node_id 1 to create a new MessageFuture object from inherited base classes: Future with example: obj = MessageFuture(msg_id, header)