Skip to content

Data Buffer

The data buffer is an auxiliary method that can be used in all the components. It takes the stream data and formats it to the given specifications.

It has different configuration states to configure its behaviour.

Type State Description
No buffer BufferMode.NO_BUF Returns one value at the time.
Batch BufferMode.BATCH Returns values by batches.
Window BufferMode.WINDOW Returns values by time windows.

Examples

Code examples to show the behaviour of the DataBuffer class.

No Buffer mode

from detectmatelibrary.utils.data_buffer import DataBuffer, ArgsBuffer, BufferMode

results = []
buf = DataBuffer(ArgsBuffer(mode=BufferMode.NO_BUF, process_function=results.append))
buf.add(1)
buf.add(2)

print(results)  # [1, 2]

Batch mode

results = []
buf = DataBuffer(ArgsBuffer(mode=BufferMode.BATCH, process_function=results.append, size=3))

buf.add(1)
print(results)  # []

buf.add(1)
print(results)  # []

buf.add(1)
print(results)  # [[1, 1, 1]]

Window mode

buf = DataBuffer(ArgsBuffer(mode=BufferMode.WINDOW, process_function=sum, size=2))

print(buf.add(1) is None)  # True
print(buf.add(2))  # 3
print(buf.add(5))  # 7