In [1]:
import logging
logging.basicConfig(level=logging.DEBUG)

import itertools
import time

import pipecat.limit
import pipecat.record
import pipecat.utility

In [2]:
def broken_metronome():
    for i in itertools.count():
        yield {}
        time.sleep(i)

In [3]:
pipe = broken_metronome()
pipe = pipecat.utility.add_timestamp(pipe)
pipe = pipecat.limit.timeout(pipe, timeout=pipecat.quantity(5, pipecat.units.seconds))

for record in pipe:
    pipecat.record.dump(record)


timestamp: 2016-12-06T06:32:49.784118+00:00

timestamp: 2016-12-06T06:32:49.784156+00:00

timestamp: 2016-12-06T06:32:50.789063+00:00

timestamp: 2016-12-06T06:32:52.789598+00:00

timestamp: 2016-12-06T06:32:55.792659+00:00

timestamp: 2016-12-06T06:32:59.793101+00:00

timestamp: 2016-12-06T06:33:04.796359+00:00

INFO:pipecat:Iteration stopped by 5 second timeout.