buffers.py: buffers of various shapes, sizes and functionalities
Featuring::
-
-* CircularBuffer
-* LogarithmicBuffer: saves only last N items, and after that less and less so
-* very few old items are kept
+ - CircularBuffer
+ - LogarithmicBuffer: saves only last N items, and after that less and less so
+ very few old items are kept
"""
+
class CircularBuffer:
""" circular buffer for data; saves last N sets
if size < 1:
raise ValueError('size must be positive!')
self.buffer_size = size
- self._buffer = [empty_element for idx in range(size)]
+ self._buffer = [empty_element for _ in range(size)]
self._buff_idx = 0
self.n_items = 0
""" internal helper for saving (or not) items in data_old """
# determine whether we throw it away or actually save it
- if age % 2**index != 0:
+ if age % 2 ** index != 0:
return
# we save it. But before check if we need to extend data_old or
if len(self._data_old) <= index:
self._data_old.append(item)
else:
- self._save_old(self._data_old[index], age, index+1)
+ self._save_old(self._data_old[index], age, index + 1)
self._data_old[index] = item
def get_all(self):