code: def deliver(self, timeout=None):
          
          self.event.wait(timeout)
          if self.error:
              raise self.error
          elif not self.event.is_set():
              raise OperationTimedOut()
          else:
              return self.responses
docs: If fail_on_error was set to False, a list of (success, response)
          tuples will be returned.  If success is False, response will be
          an Exception.  Otherwise, response will be the normal query response.
  
          If fail_on_error was left as True and one of the requests
          failed, the corresponding Exception will be raised. Otherwise,
          the normal response will be returned.