print.py 961 B

12345678910111213141516171819202122232425262728
  1. import functools
  2. from typing import TYPE_CHECKING, Callable, List, Generator
  3. from api.od import ODAPI
  4. from examples.schedule.RuleExecuter import RuleExecuter
  5. from .exec_node import ExecNode
  6. from .data_node import DataNode
  7. class Print(ExecNode, DataNode):
  8. def __init__(self, label: str = "") -> None:
  9. ExecNode.__init__(self, out_connections=1)
  10. DataNode.__init__(self)
  11. self.label = label
  12. def execute(self, od: ODAPI) -> Generator | None:
  13. self.input_event(True)
  14. return None
  15. def input_event(self, success: bool) -> None:
  16. print(f"{self.label}{self.data_in.data}")
  17. def generate_dot(self, nodes: List[str], edges: List[str], visited: set[int]) -> None:
  18. if self.id in visited:
  19. return
  20. nodes.append(f"{self.id}[label=Print_{self.label.replace(":", "")}]")
  21. ExecNode.generate_dot(self, nodes, edges, visited)
  22. DataNode.generate_dot(self, nodes, edges, visited)