import collections.abc
import logging
from ..abc.generator import Generator
from ..abc.source import TriggerSource
L = logging.getLogger(__name__)
[docs]class IteratorSource(TriggerSource):
"""
Description:
|
"""
[docs] def __init__(self, app, pipeline, iterator: collections.abc.Iterator, id=None, config=None):
"""
Description:
|
"""
super().__init__(app, pipeline, id=id, config=config)
self.Iterator = iterator
[docs] async def cycle(self, *args, **kwags):
"""
Description:
|
"""
for event in self.Iterator:
await self.process(event)
[docs]class IteratorGenerator(Generator):
"""
Description:
|
"""
[docs] async def generate(self, context, event, depth):
"""
Description:
|
"""
for item in event:
self.Pipeline.inject(context, item, depth)