Мне нужна структура, в которой я смогу выполнять pop () и append () справа (точно так же, как deque), при этом структура блокируется и ждет, если она пуста (как очередь).Я мог бы напрямую использовать Очередь, но мне также нужна приятная особенность deque, при которой элементы удаляются без блокировки, если структура заполнена.
from collections import deque
d = deque(maxlen=2)
d.append(1)
d.append(2)
d.append(3) # d should be [2,3] (it is the case)
d.pop()
d.pop()
d.pop() # should wait (not the case)
Лучше ли создавать подкласс deque (заставляя его ждать) или Queue(добавив функцию popLeft)?