stream2py.utility.locked_sorted_deque#
Sorted Deque that handles Reader-Writer Priority
Classes
|
- class stream2py.utility.locked_sorted_deque.RWLockSortedDeque(iterable=(), *, key=None, maxlen=None)[source]#
Bases:
RWLock>>> import operator >>> locked_deque = RWLockSortedDeque( ... ((('plc', int(i // 10 * 10), i), f'data_{i}') for i in range(100)), ... key=operator.itemgetter(0), ... maxlen=100000) >>> new_item = (('plc', 100000, 100000), 'new data') >>> with locked_deque.writer_lock() as writer: ... writer.append(new_item) >>> with locked_deque.reader_lock() as reader: ... print(reader.find_gt(('plc', 90, 91))) ... (('plc', 90, 92), 'data_92') >>> with locked_deque.reader_lock() as reader: ... print(reader.find_gt(('plc', 90, 99))) ... (('plc', 100000, 100000), 'new data')