'Put an item into the queue without blocking.
If no free slot is immediately available, raise `QueueFull`.'

def put_nowait(self, item):

    self._consume_expired()
    if self._getters:
        assert self.empty(), 'queue    non-empty,    why    are    getters    waiting?'
        getter = self._getters.popleft()
        self.__put_internal(item)
        getter.set_result(self._get())
    elif self.full():
        raise QueueFull
    else:
        self.__put_internal(item)
