Bertrand Benjamin
cd2fdc162e
All checks were successful
continuous-integration/drone/push Build is passing
18 lines
466 B
Python
18 lines
466 B
Python
class ActionNotFound(Exception):
|
|
pass
|
|
|
|
|
|
class Dispatcher:
|
|
def __init__(self, actions: list):
|
|
self._actions = actions
|
|
|
|
def __call__(self, task):
|
|
try:
|
|
choosen_action = self._actions[task.action]
|
|
except KeyError:
|
|
raise ActionNotFound(
|
|
f"The action {task.action} is not in {self._actions.keys()}"
|
|
)
|
|
|
|
return choosen_action(args=task.args, deps=task.deps, output=task.output)
|