code: def get(self, block=True, timeout=None):
          
          _, node_id = self.inner.get(block=block, timeout=timeout)
          with self.lock:
              self._mark_in_progress(node_id)
          return self.get_node(node_id)
docs: Get a node off the inner priority queue. By default, this blocks.
  
          This takes the lock, but only for part of it.
  
          :param bool block: If True, block until the inner queue has data
          :param Optional[float] timeout: If set, block for timeout seconds
              waiting for data.
          :return ParsedNode: The node as present in the manifest.
  
          See `queue.PriorityQueue` for more information on `get()` behavior and
          exceptions.