Source code for alphatwirl.loop.EventLoop

# Tai Sakuma <tai.sakuma@gmail.com>
from alphatwirl.misc.deprecation import _renamed_class_method_option
from atpbar import atpbar

##__________________________________________________________________||
[docs]class EventLoop: """An event loop Args: build_events: A picklable function to create events. reader: An event reader. This must be picklable before `begin()` is called and after `end` is called. progressbar_label (optional): a label shown by the progress bar """ @_renamed_class_method_option(old='name', new='progressbar_label') def __init__(self, build_events, reader, progressbar_label=None): self.build_events = build_events self.reader = reader ## if progressbar_label is None: self.progressbar_label = self.__class__.__name__ else: self.progressbar_label = progressbar_label ## name_value_pairs = ( ('build_events', self.build_events), ('reader', self.reader), ('progressbar_label', self.progressbar_label), ) self._repr = '{}({})'.format( self.__class__.__name__, ', '.join(['{}={!r}'.format(n, v) for n, v in name_value_pairs])) def __repr__(self): return self._repr def __call__(self): events = self.build_events() self.reader.begin(events) for event in atpbar(events, name=self.progressbar_label): self.reader.event(event) self.reader.end() return self.reader
##__________________________________________________________________||