69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
from bonobo.util import get_name
|
|
|
|
|
|
class InactiveIOError(IOError):
|
|
pass
|
|
|
|
|
|
class InactiveReadableError(InactiveIOError):
|
|
pass
|
|
|
|
|
|
class InactiveWritableError(InactiveIOError):
|
|
pass
|
|
|
|
|
|
class ValidationError(RuntimeError):
|
|
def __init__(self, inst, message):
|
|
super(ValidationError, self).__init__(
|
|
"Validation error in {class_name}: {message}".format(class_name=type(inst).__name__, message=message)
|
|
)
|
|
|
|
|
|
class ProhibitedOperationError(RuntimeError):
|
|
pass
|
|
|
|
|
|
class ConfigurationError(Exception):
|
|
pass
|
|
|
|
|
|
class UnrecoverableError(Exception):
|
|
"""Flag for errors that must interrupt the workflow, either because they will happen for sure on each node run, or
|
|
because you know that your transformation has no point continuing running after a bad event."""
|
|
|
|
|
|
class AbstractError(UnrecoverableError, NotImplementedError):
|
|
"""Abstract error is a convenient error to declare a method as "being left as an exercise for the reader"."""
|
|
|
|
def __init__(self, method):
|
|
super().__init__(
|
|
"Call to abstract method {class_name}.{method_name}(...): missing implementation.".format(
|
|
class_name=get_name(method.__self__), method_name=get_name(method)
|
|
)
|
|
)
|
|
|
|
|
|
class UnrecoverableTypeError(UnrecoverableError, TypeError):
|
|
pass
|
|
|
|
|
|
class UnrecoverableAttributeError(UnrecoverableError, AttributeError):
|
|
pass
|
|
|
|
|
|
class UnrecoverableValueError(UnrecoverableError, ValueError):
|
|
pass
|
|
|
|
|
|
class UnrecoverableRuntimeError(UnrecoverableError, RuntimeError):
|
|
pass
|
|
|
|
|
|
class UnrecoverableNotImplementedError(UnrecoverableError, NotImplementedError):
|
|
pass
|
|
|
|
|
|
class MissingServiceImplementationError(UnrecoverableError, KeyError):
|
|
pass
|