"""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]
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):
_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,
})