Use this driver in an async context. E.g. for use with FastAPI.

class hamilton.experimental.h_async.AsyncDriver(config, *modules, result_builder: ResultMixin | None = None)

Async driver. This is a driver that uses the AsyncGraphAdapter to execute the graph.

dr = h_async.AsyncDriver({}, async_module, result_builder=base.DictResult())
df = await dr.execute([...], inputs=...)
__init__(config, *modules, result_builder: ResultMixin | None = None)

Instantiates an asynchronous driver.

  • config – Config to build the graph

  • modules – Modules to crawl for fns/graph nodes

  • result_builder – Results mixin to compile the graph’s final results. TBD whether this should be included in the long run.

capture_constructor_telemetry(error: str | None, modules: Tuple[ModuleType], config: Dict[str, Any], adapter: HamiltonGraphAdapter)

Ensures we capture constructor telemetry the right way in an async context.

This is a simpler wrapper around what’s in the driver class.

  • error – sanitized error string, if any.

  • modules – tuple of modules to build DAG from.

  • config – config to create the driver.

  • adapter – adapter class object.

async execute(final_vars: List[str], overrides: Dict[str, Any] = None, display_graph: bool = False, inputs: Dict[str, Any] = None) Any

Executes computation.

  • final_vars – the final list of variables we want to compute.

  • overrides – values that will override β€œnodes” in the DAG.

  • display_graph – DEPRECATED. Whether we want to display the graph being computed.

  • inputs – Runtime inputs to the DAG.


an object consisting of the variables requested, matching the type returned by the GraphAdapter. See constructor for how the GraphAdapter is initialized. The default one right now returns a pandas dataframe.

async raw_execute(final_vars: List[str], overrides: Dict[str, Any] = None, display_graph: bool = False, inputs: Dict[str, Any] = None, run_id: str = None) Dict[str, Any]

Executes the graph, returning a dictionary of strings (node keys) to final results.

  • final_vars – Variables to execute (+ upstream)

  • overrides – Overrides for nodes

  • display_graph – whether or not to display graph – this is not supported.

  • inputs – Inputs for DAG runtime calculation


A dict of key -> result