class_docstr: Per-node context for pipeline compilation.
class_docstr_tok: ["Per-node","context","for","pipeline","compilation","."]
docstr: Get NodeInputs.input_graphs key for the given resolver function output.
  
  Arguments:
    traced_output: A resolver function traced result which is stored in
        `ResolvedChannels.output_node`.
    for_each_context: An optional ForEachContext that the resolver function
        output is bound to, Which is stored in
        `ResolvedChannels.for_each_context`.
  
  Returns:
    A fixed input key for NodeInputs.input_graphs.
docstr_tok: ["Get","NodeInputs.input_graphs","key","for","the","given","resolver","function","output",".","Arguments",":","traced_output",":","A","resolver","function","traced","result","which","is","stored","in","`","ResolvedChannels.output_node","`",".","for_each_context",":","An","optional","ForEachContext","that","the","resolver","function","output","is","bound","to",",","Which","is","stored","in","`","ResolvedChannels.for_each_context","`",".","Returns",":","A","fixed","input","key","for","NodeInputs.input_graphs","."]
code: def get_input_graph_key(
      self,
      traced_output: resolver_op.Node,
      for_each_context: Optional[for_each_internal.ForEachContext],
  ):
      """Get NodeInputs.input_graphs key for the given resolver function output.
  
      Arguments:
        traced_output: A resolver function traced result which is stored in
            `ResolvedChannels.output_node`.
        for_each_context: An optional ForEachContext that the resolver function
            output is bound to, Which is stored in
            `ResolvedChannels.for_each_context`.
  
      Returns:
        A fixed input key for NodeInputs.input_graphs.
      """
      key = traced_output, for_each_context
      if key not in self._input_graph_key_by_resolver_fn:
          self._input_graph_key_by_resolver_fn[
              key
          ] = f"graph_{len(self._input_graph_key_by_resolver_fn) + 1}"
      return self._input_graph_key_by_resolver_fn[key]
  
imports: from __future__ import annotations
  import collections
  from typing import Optional, List, Set, Iterable, Dict
  from tfx.dsl.compiler import compiler_utils
  from tfx.dsl.components.base import base_node
  from tfx.dsl.context_managers import dsl_context_registry
  from tfx.dsl.control_flow import for_each_internal
  from tfx.dsl.experimental.conditionals import conditional
  from tfx.dsl.input_resolution import resolver_op
  from tfx.orchestration import pipeline
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.types import channel
  from tfx.types import channel_utils
label_desc: Use image node_id 3 for calling the NodeContext obj's underlying member method code with example usage: obj.get_input_graph_key(traced_output, for_each_context) and returns: self