Files
bonobo/bonobo/execution/plugin.py
Vitalii Vokhmin 575462ca4c Check if PluginExecutionContext was started before shutting it down.
If a `PluginExecutionContext().shutdown()` is called _before_
`PluginExecutionContext().start()` was called,
this leads to an `AttributeError` exception since finalizer tries to
access to attributes which were never defined.
2017-07-15 15:35:01 +02:00

27 lines
810 B
Python

from bonobo.execution.base import LoopingExecutionContext, recoverable
class PluginExecutionContext(LoopingExecutionContext):
PERIOD = 0.5
def __init__(self, wrapped, parent):
# Instanciate plugin. This is not yet considered stable, as at some point we may need a way to configure
# plugins, for example if it depends on an external service.
super().__init__(wrapped(self), parent)
def start(self):
super().start()
with recoverable(self.handle_error):
self.wrapped.initialize()
def shutdown(self):
if self.started:
with recoverable(self.handle_error):
self.wrapped.finalize()
self.alive = False
def step(self):
with recoverable(self.handle_error):
self.wrapped.run()