in share/multiline.py [0:0]
def collect(self) -> CollectIterator:
last_iteration_datetime: datetime.datetime = datetime.datetime.now(datetime.UTC)
for data, newline in self.feed:
self._buffer.grow(data, newline)
self._current_count += 1
if (
self._count_lines == self._current_count
or (datetime.datetime.now(datetime.UTC) - last_iteration_datetime) > timedelta_circuit_breaker
):
self._current_count = 0
yield self._buffer.collect_and_reset()
if not self._buffer.is_empty():
yield self._buffer.collect_and_reset()