62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
# artdag - Content-addressed DAG execution engine with ActivityPub ownership
|
|
#
|
|
# A standalone execution engine that processes directed acyclic graphs (DAGs)
|
|
# where each node represents an operation. Nodes are content-addressed for
|
|
# automatic caching and deduplication.
|
|
#
|
|
# Core concepts:
|
|
# - Node: An operation with type, config, and inputs
|
|
# - DAG: A graph of nodes with a designated output node
|
|
# - Executor: Implements the actual operation for a node type
|
|
# - Engine: Executes DAGs by resolving dependencies and running executors
|
|
|
|
from .dag import Node, DAG, DAGBuilder, NodeType
|
|
from .cache import Cache, CacheEntry
|
|
from .executor import Executor, register_executor, get_executor
|
|
from .engine import Engine
|
|
from .registry import Registry, Asset
|
|
from .activities import Activity, ActivityStore, ActivityManager, make_is_shared_fn
|
|
|
|
# Analysis and planning modules (optional, require extra dependencies)
|
|
try:
|
|
from .analysis import Analyzer, AnalysisResult
|
|
except ImportError:
|
|
Analyzer = None
|
|
AnalysisResult = None
|
|
|
|
try:
|
|
from .planning import RecipePlanner, ExecutionPlan, ExecutionStep
|
|
except ImportError:
|
|
RecipePlanner = None
|
|
ExecutionPlan = None
|
|
ExecutionStep = None
|
|
|
|
__all__ = [
|
|
# Core
|
|
"Node",
|
|
"DAG",
|
|
"DAGBuilder",
|
|
"NodeType",
|
|
"Cache",
|
|
"CacheEntry",
|
|
"Executor",
|
|
"register_executor",
|
|
"get_executor",
|
|
"Engine",
|
|
"Registry",
|
|
"Asset",
|
|
"Activity",
|
|
"ActivityStore",
|
|
"ActivityManager",
|
|
"make_is_shared_fn",
|
|
# Analysis (optional)
|
|
"Analyzer",
|
|
"AnalysisResult",
|
|
# Planning (optional)
|
|
"RecipePlanner",
|
|
"ExecutionPlan",
|
|
"ExecutionStep",
|
|
]
|
|
|
|
__version__ = "0.1.0"
|