Source code for datalogd.plugins.join_datafilter

from datalogd import DataFilter, listify

[docs]class JoinDataFilter(DataFilter): """ Join two or more consecutive receipts of data together into a list. If the data are already lists, the two lists will be merged. :param count: Number of data receipts to join. """ def __init__(self, sinks=[], count=2): super().__init__(sinks=sinks) self.count = count self._buffer = []
[docs] def receive(self, data): """ Accept ``data`` and join consecutive receipts of data together into a list. :param data: data to join. """ data = listify(data) self._buffer.append(data) if len(self._buffer) >= self.count: joined_data = [] for b in self._buffer: joined_data.extend(b) self.send(joined_data) self._buffer = []