Closed liamhuber closed 1 month ago
Check out this pull request on
See visual diffs & provide feedback on Jupyter Notebooks.
Powered by ReviewNB
Coverage variation | Diff coverage |
---|---|
:white_check_mark: +0.22% (target: -1.00%) | :white_check_mark: 86.36% |
Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more
Files with Coverage Reduction | New Missed Lines | % | ||
---|---|---|---|---|
mixin/run.py | 7 | 92.38% | ||
nodes/composite.py | 13 | 92.31% | ||
node.py | 15 | 90.3% | ||
workflow.py | 28 | 66.17% | ||
<!-- | Total: | 63 | --> |
Totals | |
---|---|
Change from base Build 10983970779: | 0.2% |
Covered Lines: | 3023 |
Relevant Lines: | 3304 |
This adds a new run argument
raise_run_exceptions
, and a new output signalfailed
to allow us to handle failure states more gracefully. Exploiting thefailed
signal requires manual management of the execution flow, but lets us have fallback routines in the graph flow to do something else if a node fails. It plays fine with executors. Here's an example with a graph image that is just beautiful and informative thanks to @samwaseda's recent work!Composites now let the graph keep running until they run out of children to execute, and collect all exceptions together and raise a single
FailedChildError
. If instead above we hadwf(raise_run_exceptions=True)
, we'd see the error message:@samwaseda, since you've been improving the error messages too, I'm going to hit you here for review as all this is closely related.