No Output Requested while materializer should lead to error - #810
Merged
Conversation
skrawcz
reviewed
Apr 8, 2024
Comment on lines
+373
to
+377
| dr.materialize( | ||
| from_.json(target="input_data", path=value(path_in)), | ||
| additional_vars=["processed_data"], | ||
| inputs={"output_path": str(path_out)}, | ||
| ) |
Contributor
There was a problem hiding this comment.
This should still work because processed_data was requested as additional vars. So this means the check in the code isn't in the right place or needs another clause.
But this should fail as there is nothing requested to be computed:
dr.materialize(
from_.json(target="input_data", path=value(path_in)),
inputs={"output_path": str(path_out)},
)So good to have both cases to test.
7 tasks
skrawcz
pushed a commit
to chuenchen309/hamilton
that referenced
this pull request
Jul 31, 2026
The `finally` block at driver.py:1616 passes `function_graph` to the post_graph_execute hook, but that local only binds at :1568. Any error raised before it -- including the "No output requested" ValueError added in apache#810 for apache#796 -- makes the finally die with UnboundLocalError instead, hiding the real cause. `outputs` and `materializer_vars` were already pre-initialized for exactly this reason ("This is so the finally logging statement does not accidentally die"); `function_graph` was missed. Pre-initialize it the same way. This only surfaces when a post_graph_execute hook is registered, which gates the finally block. apache#796's reporter used h_experiments.ExperimentTracker -- one such hook -- so the fix in apache#810 never reached the reported case. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
skrawcz
pushed a commit
to chuenchen309/hamilton
that referenced
this pull request
Aug 1, 2026
The `finally` block at driver.py:1616 passes `function_graph` to the post_graph_execute hook, but that local only binds at :1568. Any error raised before it -- including the "No output requested" ValueError added in apache#810 for apache#796 -- makes the finally die with UnboundLocalError instead, hiding the real cause. `outputs` and `materializer_vars` were already pre-initialized for exactly this reason ("This is so the finally logging statement does not accidentally die"); `function_graph` was missed. Pre-initialize it the same way. This only surfaces when a post_graph_execute hook is registered, which gates the finally block. apache#796's reporter used h_experiments.ExperimentTracker -- one such hook -- so the fix in apache#810 never reached the reported case. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Address #796
Changes
Added a check to to throw Error if materializer are 0.
Added Test case for the same
How I tested this
Unit Tested

Run Example on local as well
Notes
Checklist