Skip to content

Flow

dotflow.abc.flow.Flow

Bases: ABC

Source code in dotflow/abc/flow.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Flow(ABC):

    def __init__(
            self,
            tasks: List[Task],
            workflow_id: UUID,
            ignore: bool,
            groups: Dict[str, List[Task]]
    ) -> None:
        self.queue = None
        self.tasks = tasks
        self.workflow_id = workflow_id
        self.ignore = ignore
        self.groups = groups

        self.setup_queue()
        self.run()

    @abstractmethod
    def setup_queue(self) -> None:
        self.queue = []

    @abstractmethod
    def get_tasks(self) -> List[Task]:
        return self.queue

    @abstractmethod
    def _flow_callback(self, task: Task) -> None:
        self.queue.append(task)

    @abstractmethod
    def run(self) -> None:
        return None

groups = groups instance-attribute

ignore = ignore instance-attribute

queue = None instance-attribute

tasks = tasks instance-attribute

workflow_id = workflow_id instance-attribute

__init__(tasks, workflow_id, ignore, groups)

Source code in dotflow/abc/flow.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def __init__(
        self,
        tasks: List[Task],
        workflow_id: UUID,
        ignore: bool,
        groups: Dict[str, List[Task]]
) -> None:
    self.queue = None
    self.tasks = tasks
    self.workflow_id = workflow_id
    self.ignore = ignore
    self.groups = groups

    self.setup_queue()
    self.run()

get_tasks() abstractmethod

Source code in dotflow/abc/flow.py
32
33
34
@abstractmethod
def get_tasks(self) -> List[Task]:
    return self.queue

run() abstractmethod

Source code in dotflow/abc/flow.py
40
41
42
@abstractmethod
def run(self) -> None:
    return None

setup_queue() abstractmethod

Source code in dotflow/abc/flow.py
28
29
30
@abstractmethod
def setup_queue(self) -> None:
    self.queue = []