Add 'quiet' option for Processor to not print any output
Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
This commit is contained in:
parent
0692e32b22
commit
233d63077e
1 changed files with 14 additions and 6 deletions
|
@ -289,12 +289,14 @@ class Processor():
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
*handlers: EventHandler,
|
*handlers: EventHandler,
|
||||||
|
quiet: bool = False,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""
|
"""
|
||||||
Create a Processor.
|
Create a Processor.
|
||||||
|
|
||||||
:param handlers: the `EventHandler`s to use for processing
|
:param handlers: the `EventHandler`s to use for processing
|
||||||
|
:param quiet: whether to not print any output, like progress information
|
||||||
:param kwargs: the parameters to pass on to new handlers
|
:param kwargs: the parameters to pass on to new handlers
|
||||||
"""
|
"""
|
||||||
self._initial_handlers = list(handlers)
|
self._initial_handlers = list(handlers)
|
||||||
|
@ -303,9 +305,10 @@ class Processor():
|
||||||
self._expanded_handlers = self._expand_dependencies(*handlers, **kwargs)
|
self._expanded_handlers = self._expand_dependencies(*handlers, **kwargs)
|
||||||
self._handler_multimap = self._get_handler_maps(self._expanded_handlers)
|
self._handler_multimap = self._get_handler_maps(self._expanded_handlers)
|
||||||
self._register_with_handlers(self._expanded_handlers)
|
self._register_with_handlers(self._expanded_handlers)
|
||||||
|
self._quiet = quiet
|
||||||
self._progress_display = ProcessingProgressDisplay(
|
self._progress_display = ProcessingProgressDisplay(
|
||||||
[type(handler).__name__ for handler in self._expanded_handlers],
|
[type(handler).__name__ for handler in self._expanded_handlers],
|
||||||
)
|
) if not self._quiet else None
|
||||||
self._processing_done = False
|
self._processing_done = False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -401,12 +404,17 @@ class Processor():
|
||||||
self._check_required_events(events)
|
self._check_required_events(events)
|
||||||
|
|
||||||
if not self._processing_done:
|
if not self._processing_done:
|
||||||
|
# Split into two versions so that performance is optimal
|
||||||
|
if self._progress_display is None:
|
||||||
|
for event in events:
|
||||||
|
self._process_event(event)
|
||||||
|
else:
|
||||||
self._progress_display.set_work_total(len(events))
|
self._progress_display.set_work_total(len(events))
|
||||||
for event in events:
|
for event in events:
|
||||||
self._process_event(event)
|
self._process_event(event)
|
||||||
self._progress_display.did_work()
|
self._progress_display.did_work()
|
||||||
self._processing_done = True
|
|
||||||
self._progress_display.done(erase=erase_progress)
|
self._progress_display.done(erase=erase_progress)
|
||||||
|
self._processing_done = True
|
||||||
|
|
||||||
def _process_event(self, event: DictEvent) -> None:
|
def _process_event(self, event: DictEvent) -> None:
|
||||||
"""Process a single event."""
|
"""Process a single event."""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue