v0.0.10¶
New: Namespace + DAG Definition (lythonic.compose.namespace)¶
Composable directed acyclic graph (DAG) framework built on top of a typed namespace registry.
Namespace— typed registry withregister(),get(),register_all, and__getattr__for dot-access to callables.DagNode/DagEdge/Dag— define DAGs with the>>operator, validate with cycle detection and type checking, and introspect via context manager.DagContextandNamespaceNode— runtime context injection and metadata containers for registered callables.
New: DAG Execution + Provenance (lythonic.compose.dag_runner, lythonic.compose.dag_provenance)¶
SQLite-backed execution engine with full provenance tracking.
DagRunner— linear execution with automatic output wiring,restart()for paused/failed runs, andreplay()for selective re-execution.DagProvenance— SQLite data layer recording run history and node outputs.NullProvenance— allows DAG registration and execution without persistence (db_pathis now optional).Dag.clone(prefix)andDagNode >> Dagmerge for composable DAG templates.
New: Namespace Config (lythonic.compose.namespace_config)¶
Pydantic-based configuration layer for namespaces.
load_namespace()— two-pass loader that resolves config into a live namespace.validate_config()anddump_namespace()— validation and serialization utilities.- Pydantic config models and
NamespaceNode.metadatasupport.
Changed¶
cachedmodule refactored — removedCacheRegistryin favor ofregister_cached_callable()helper, migrated to the newNamespacefromcompose.namespace.- Cache pushback mechanism — added
CacheRefreshPushback/CacheRefreshSuppressedexceptions with_pushbacktable and checks in both sync and async wrappers.
Fixes¶
- Made external pause test deterministic with
asyncio.Event. - Close SQLite connections in tests for Windows compatibility.
Documentation¶
- Added
testing.mdstrategy guide and updatedCLAUDE.mdwith testing and documentation rules. - Added reference pages for
dag_provenance,dag_runner,namespace_config, and updatedcachedreference. - Added
documenting.mdupdates and cached pushback documentation.