plugins.h_narhwals.NarwhalsAdapter¶
Provides a convenience wrapper for the Narwhals library; use the Narwhals decorator underneath. Must have Narwhals installed to use it:
pip install “sf-hamilton[narwhals]”
- class hamilton.plugins.h_narwhals.NarwhalsAdapter¶
Adapter to make it simpler to use narwhals with Hamilton.
from hamilton import base, driver from hamilton.plugins import h_narwhals import example # pandas dr = ( driver.Builder() .with_config({"load": "pandas"}) .with_modules(example) .with_adapters( h_narwhals.NarwhalsAdapter(), h_narwhals.NarwhalsDataFrameResultBuilder( base.PandasDataFrameResult() ), ) .build() ) result = dr.execute( [example.group_by_mean, example.example1], inputs={"col_name": "a"} )
- do_node_execute(*, run_id: str, node_: Node, kwargs: Dict[str, Any], task_id: str | None = None) Any ¶
Method that is called to implement node execution. This can replace the execution of a node with something all together, augment it, or delegate it.
- Parameters:
run_id – ID of the run, unique in scope of the driver.
node – Node that is being executed
kwargs – Keyword arguments that are being passed into the node
task_id – ID of the task, defaults to None if not in a task setting
- run_to_execute_node(*, node_name: str, node_tags: Dict[str, Any], node_callable: Any, node_kwargs: Dict[str, Any], task_id: str | None, **future_kwargs: Any) Any ¶
This method is responsible for executing the node and returning the result.
It uses nw_kwargs from the node tags to know if any special flags should be passed to the narwhals decorator function.
- Parameters:
node_name – Name of the node.
node_tags – Tags of the node.
node_callable – Callable of the node.
node_kwargs – Keyword arguments to pass to the node.
task_id – The ID of the task, none if not in a task-based environment
future_kwargs – Additional keyword arguments – this is kept for backwards compatibility
- Returns:
The result of the node execution – up to you to return this.
plugins.h_narhwals.NarwhalsDataFrameResultBuilder¶
Result builder to be used with the NarwhalsAdapter. Must have Narwhals installed to use it:
pip install “sf-hamilton[narwhals]”
- class hamilton.plugins.h_narwhals.NarwhalsDataFrameResultBuilder(result_builder: ResultBuilder | LegacyResultMixin)¶
Builds the result. It unwraps the narwhals parts of it and delegates to the passed in result builder.
from hamilton import base, driver from hamilton.plugins import h_narwhals, h_polars import example # polars dr = ( driver.Builder() .with_config({"load": "polars"}) .with_modules(example) .with_adapters( h_narwhals.NarwhalsAdapter(), h_narwhals.NarwhalsDataFrameResultBuilder( h_polars.PolarsDataFrameResult() ), ) .build() ) result = dr.execute( ["group_by_mean", "example1"], inputs={"col_name": "a"} )
- __init__(result_builder: ResultBuilder | LegacyResultMixin)¶
- build_result(**outputs: Any) Any ¶
Given a set of outputs, build the result.
- Parameters:
outputs – the outputs from the execution of the graph.
- Returns:
the result of the execution of the graph.
- do_build_result(outputs: Dict[str, Any]) Any ¶
Implements the do_build_result method from the BaseDoBuildResult class. This is kept from the user as the public-facing API is build_result, allowing us to change the API/implementation of the internal set of hooks
- input_types() List[Type[Type]] ¶
Gives the applicable types to this result builder. This is optional for backwards compatibility, but is recommended.
- Returns:
A list of types that this can apply to.
- output_type() Type ¶
Returns the output type of this result builder :return: the type that this creates