version 0.1-alpha
Initial release - first major upgrades since 2022:
Conditional Edges: DAGs can now continue execution along a node-path in case of a parent node's failure! Edge conditions are documented as in the enum webber.Condition, as OnSuccess, OnFailure, or AnyCase. Default edge condition is OnSuccess.
Retry and Skip: Nodes can now be re-executed multiple times in case of failure, or skipped over entirely. Currently, skips are registered as a successful node execution.
Trace Exceptions: Trace printouts disabled by default, can be enabled at DAG execution time: DAG.execute(print_exc=True)
Other Improvements:
- Use UUID4 to limit repeating GUIDs.
- Complex xcoms deprecated in favor of Promise model.
Known bugs and Gaps:
- STDOUT logging is not guaranteed to correlate to correct node at 3+ concurrent operations.
- Visualizations for Jupyter Notebooks are largely unsupported at this time.
Under Development:
- Additional documentation, visualization improvements forthcoming in v0.1.1
- Critical Node Paths: DAGs can be reduced to a set of specified nodes and their dependencies.
Project Backlog:
- Support for Jupyter Notebook visualizations
- Get/Update Functions for Nodes and Edges
- Edge and Node filtering with Lambda Functions (e.g.:
lambda e: e.Condition == condition.OnSuccess).
Actively seeking support! Reach out to @jfathi. {:)