'Remove and return an item from the queue without blocking.
Return an item if one is immediately available, else raise
`QueueEmpty`.'

def get_nowait(self):

    self._consume_expired()
    if self._putters:
        assert self.full(), 'queue    not    full,    why    are    putters    waiting?'
        (item, putter) = self._putters.popleft()
        self.__put_internal(item)
        putter.set_result(None)
        return self._get()
    elif self.qsize():
        return self._get()
    else:
        raise QueueEmpty
