for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
import six
class DataIterator(six.Iterator):
"""An iterator over data, representing a single epoch.
Parameters
----------
data_stream : :class:`DataStream` or :class:`Transformer`
The data stream over which to iterate.
request_iterator : iterator
An iterator which returns the request to pass to the data stream
for each step.
as_dict : bool, optional
If `True`, return dictionaries mapping source names to data
from each source. If `False` (default), return tuples in the
same order as `data_stream.sources`.
"""
def __init__(self, data_stream, request_iterator=None, as_dict=False):
self.data_stream = data_stream
self.request_iterator = request_iterator
self.as_dict = as_dict
def __iter__(self):
return self
def __next__(self):
if self.request_iterator is not None:
data = self.data_stream.get_data(next(self.request_iterator))
else:
data = self.data_stream.get_data()
if self.as_dict:
return dict(zip(self.data_stream.sources, data))
return data