end.py 636 B

123456789101112131415161718192021
  1. import functools
  2. from typing import TYPE_CHECKING, List, Callable, Generator
  3. from api.od import ODAPI
  4. from .exec_node import ExecNode
  5. class End(ExecNode):
  6. def __init__(self) -> None:
  7. super().__init__(out_connections=1)
  8. def execute(self, od: ODAPI) -> Generator | None:
  9. return self.terminate(od)
  10. @staticmethod
  11. def terminate(od: ODAPI) -> Generator:
  12. yield f"end:", functools.partial(lambda od:(od, ""), od)
  13. def generate_dot(self, nodes: List[str], edges: List[str], visited: set[int]) -> None:
  14. if self.id in visited:
  15. return
  16. nodes.append(f"{self.id}[label=end]")