Skip to content

No Output Requested while materializer should lead to error - #810

Merged
skrawcz merged 5 commits into
apache:mainfrom
swapdewalkar:mat_err_4_no_output
Apr 9, 2024
Merged

No Output Requested while materializer should lead to error#810
skrawcz merged 5 commits into
apache:mainfrom
swapdewalkar:mat_err_4_no_output

Conversation

@swapdewalkar

@swapdewalkar swapdewalkar commented Apr 8, 2024

Copy link
Copy Markdown
Contributor

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
test_no_materializer

Notes

Checklist

  • PR has an informative and human-readable title (this will be pulled into the release notes)
  • Changes are limited to a single goal (no scope creep)
  • Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
  • Any change in functionality is tested
  • New functions are documented (with a description, list of inputs, and expected output)
  • Placeholder code is flagged / future TODOs are captured in comments
  • Project documentation has been updated if adding/changing functionality.

Comment thread tests/test_end_to_end.py
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)},
)

@skrawcz skrawcz Apr 8, 2024

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@skrawcz skrawcz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread hamilton/driver.py Outdated
@skrawcz
skrawcz merged commit 939e3eb into apache:main Apr 9, 2024
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants