Source code for tisserande.models.types

"""Node type and execution status enumerations for the provenance graph."""

import enum


[docs] class NodeType(enum.Enum):
[docs] DATA_FILE = "data_file"
[docs] CONFIG_FILE = "config_file"
[docs] CONFIG_DICT = "config_dict"
[docs] PARAMETER = "parameter"
[docs] ARRAY = "array"
[docs] OBJECT = "object"
[docs] PYTHON_FUNCTION = "python_function"
[docs] MEMBER_FUNCTION = "member_function"
[docs] SHELL_FUNCTION = "shell_function"
@property
[docs] def is_data(self) -> bool: return self in _DATA_TYPES
@property
[docs] def is_logic(self) -> bool: return self in _LOGIC_TYPES
[docs] class ExecutionStatus(enum.Enum):
[docs] PENDING = "pending"
[docs] RUNNING = "running"
[docs] SUCCESS = "success"
[docs] FAILURE = "failure"
_DATA_TYPES = frozenset({ NodeType.DATA_FILE, NodeType.CONFIG_FILE, NodeType.CONFIG_DICT, NodeType.PARAMETER, NodeType.ARRAY, NodeType.OBJECT, }) _LOGIC_TYPES = frozenset({ NodeType.PYTHON_FUNCTION, NodeType.MEMBER_FUNCTION, NodeType.SHELL_FUNCTION, })