def output_for_node(self, node_str: str, output_name: Optional[str] = DEFAULT_OUTPUT) -> Any: """Retrieves output value with a particular name from the in-process run of the job. Args: node_str (str): Name of the op/graph whose output should be retrieved. If the intended graph/op is nested within another graph, the syntax is `outer_graph.inner_node`. output_name (Optional[str]): Name of the output on the op/graph to retrieve. Defaults to `result`, the default output name in dagster. Returns: Any: The value of the retrieved output. """ # resolve handle of node that node_str is referring to target_handle = NodeHandle.from_string(node_str) target_node_def = self._node_def.ensure_graph_def().get_solid( target_handle).definition origin_output_def, origin_handle = target_node_def.resolve_output_to_origin( output_name, NodeHandle.from_string(node_str)) # retrieve output value from resolved handle return _filter_outputs_by_handle(self._output_capture, origin_handle, origin_output_def.name)
def events_for_node(self, node_name: str) -> List[DagsterEvent]: """Retrieves all dagster events for a specific node. Args: node_name (str): The name of the node for which outputs should be retrieved. Returns: List[DagsterEvent]: A list of all dagster events associated with provided node name. """ check.str_param(node_name, "node_name") return _filter_events_by_handle(self._event_list, NodeHandle.from_string(node_name))
def output_for_solid(self, handle_str, output_name=DEFAULT_OUTPUT): """Get the output of a solid by its solid handle string and output name. Args: handle_str (str): The string handle for the solid. output_name (str): Optional. The name of the output, default to DEFAULT_OUTPUT. Returns: The output value for the handle and output_name. """ check.str_param(handle_str, "handle_str") check.str_param(output_name, "output_name") return self.result_for_handle( NodeHandle.from_string(handle_str)).output_value(output_name)
def result_for_handle(self, handle): """Get the result of a solid by its solid handle. This allows indexing into top-level solids to retrieve the results of children of composite solids. Args: handle (Union[str,NodeHandle]): The handle for the solid. Returns: Union[CompositeSolidExecutionResult, SolidExecutionResult]: The result of the given solid. """ if isinstance(handle, str): handle = NodeHandle.from_string(handle) else: check.inst_param(handle, "handle", NodeHandle) solid = self.container.get_solid(handle) return self._result_for_handle(solid, handle)
def _get_solid_handle_from_output( step_output_handle: StepOutputHandle) -> Optional[NodeHandle]: return NodeHandle.from_string(step_output_handle.step_key)