code: def get(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[_T]:
          
          future = Future()  # type: Future[_T]
          try:
              future.set_result(self.get_nowait())
          except QueueEmpty:
              self._getters.append(future)
              _set_timeout(future, timeout)
          return future
docs: Remove and return an item from the queue.
  
          Returns an awaitable which resolves once an item is available, or raises
          `tornado.util.TimeoutError` after a timeout.
  
          ``timeout`` may be a number denoting a time (on the same
          scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a
          `datetime.timedelta` object for a deadline relative to the
          current time.
  
          .. note::
  
             The ``timeout`` argument of this method differs from that
             of the standard library's `queue.Queue.get`. That method
             interprets numeric values as relative timeouts; this one
             interprets them as absolute deadlines and requires
             ``timedelta`` objects for relative timeouts (consistent
             with other timeouts in Tornado).