[qa] attempt to fix #58.
This commit is contained in:
@ -8,6 +8,12 @@ from bonobo.plugins import get_enhancers
|
||||
from bonobo.util.errors import print_error
|
||||
from bonobo.util.objects import Wrapper, get_name
|
||||
|
||||
@contextmanager
|
||||
def recoverable(error_handler):
|
||||
try:
|
||||
yield
|
||||
except Exception as exc: # pylint: disable=broad-except
|
||||
error_handler(exc, traceback.format_exc())
|
||||
|
||||
@contextmanager
|
||||
def unrecoverable(error_handler):
|
||||
@ -17,7 +23,6 @@ def unrecoverable(error_handler):
|
||||
error_handler(exc, traceback.format_exc())
|
||||
raise # raise unrecoverableerror from x ?
|
||||
|
||||
|
||||
class LoopingExecutionContext(Wrapper):
|
||||
alive = True
|
||||
PERIOD = 0.25
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
import traceback
|
||||
|
||||
from bonobo.execution.base import LoopingExecutionContext
|
||||
from bonobo.execution.base import LoopingExecutionContext, recoverable
|
||||
|
||||
|
||||
class PluginExecutionContext(LoopingExecutionContext):
|
||||
@ -14,21 +12,14 @@ class PluginExecutionContext(LoopingExecutionContext):
|
||||
def start(self):
|
||||
super().start()
|
||||
|
||||
try:
|
||||
with recoverable(self.handle_error):
|
||||
self.wrapped.initialize()
|
||||
except Exception as exc: # pylint: disable=broad-except
|
||||
self.handle_error(exc, traceback.format_exc())
|
||||
|
||||
def shutdown(self):
|
||||
try:
|
||||
with recoverable(self.handle_error):
|
||||
self.wrapped.finalize()
|
||||
except Exception as exc: # pylint: disable=broad-except
|
||||
self.handle_error(exc, traceback.format_exc())
|
||||
finally:
|
||||
self.alive = False
|
||||
self.alive = False
|
||||
|
||||
def step(self):
|
||||
try:
|
||||
with recoverable(self.handle_error):
|
||||
self.wrapped.run()
|
||||
except Exception as exc: # pylint: disable=broad-except
|
||||
self.handle_error(exc, traceback.format_exc())
|
||||
|
||||
Reference in New Issue
Block a user