This commit is contained in:
Matthias Bisping 2022-07-04 11:46:53 +02:00
parent 3bf00d11cd
commit 36d8d3bc85

View File

@ -4,13 +4,18 @@ from pyinfra.server.buffering.queue import stream_queue, Queue
class QueuedStreamFunction:
def __init__(self, fn):
def __init__(self, stream_function):
"""Combines a stream function with a queue.
Args:
stream_function: Needs to operate on iterables.
"""
self.queue = Queue()
self.fn = fn
self.stream_function = stream_function
def push(self, item):
self.queue.append(item)
def pop(self):
items = stream_queue(self.queue)
return first(self.fn(items))
return first(self.stream_function(items))