docstr: Remove and return the data from the `FutureObject`. 
  If optional args block is true and timeout is None (the default), block if 
  necessary until an item is available. If timeout is a positive number, it 
  blocks at most timeout seconds and raises the `parl.remote.exceptions.FutureObjectEmpty`
  exception if no itemwas available within that time. Otherwise (block is false), return an item
  if one is immediately available, else raise the `parl.remote.exceptions.FutureObjectEmpty`
  exception (timeout is ignored in that case).
code: def get(self, block=True, timeout=None):
      """
      Remove and return the data from the `FutureObject`.
      If optional args block is true and timeout is None (the default), block if
      necessary until an item is available. If timeout is a positive number, it
      blocks at most timeout seconds and raises the `parl.remote.exceptions.FutureObjectEmpty`
      exception if no itemwas available within that time. Otherwise (block is false), return an item
      if one is immediately available, else raise the `parl.remote.exceptions.FutureObjectEmpty`
      exception (timeout is ignored in that case).
      """
      if timeout is not None:
          assert timeout > 0, "`timeout` must be a non-negative number"
  
      with self.internal_lock:
          if self._already_get:
              raise FutureGetRepeatedlyError()
  
          try:
              result = self._output_queue.get(
                  block=block, timeout=timeout
              )
          except queue.Empty:
              raise FutureObjectEmpty
  
          if isinstance(result, FutureFunctionError):
              time.sleep(
                  0.1
              )  # waiting for another thread printing the error message
              raise result
          self._already_get = True
          return result
  
file_path: PARL/parl/remote/future_mode/future_object.py
imports: import time
  import threading
  from six.moves import queue
  from parl.remote.exceptions import FutureGetRepeatedlyError, FutureFunctionError, FutureObjectEmpty
label_desc: Use image node_id 2 for calling the FutureObject obj's underlying member method code with example usage: obj.get(block, timeout) and returns: result