Source code for council.runners.sequential
from .runner_context import RunnerContext
from .runner_base import RunnerBase
from .runner_executor import RunnerExecutor
[docs]class Sequential(RunnerBase):
"""
Runner that executes a list of :class:`.RunnerBase` in sequence
"""
def __init__(self, *runners: RunnerBase):
self.runners = runners
def _run(
self,
context: RunnerContext,
executor: RunnerExecutor,
) -> None:
for runner in self.runners:
if context.should_stop():
return
runner.run(context, executor)
@staticmethod
def from_list(*runners: RunnerBase) -> RunnerBase:
if len(runners) == 1:
return runners[0]
return Sequential(*runners)