class_docstr: A visitor that packs combine nodes in the graph.
  
  This visitor takes the grouped combines and performs the packing of those
  combines.
                 Before packing
             GrandParentNode
              /           \
   ExtractFromDict1     ExtractFromDict2
             /              \
         Combine1         Combine2
  
                 After packing
             GrandParentNode
                     |
               PackedCombine
                 /      \
   ExtractFromDict1'   ExtractFromDict2'
  
  The ExtractFromDict nodes after packing extracts the accumulator corresponding
  to the individual combines.
class_docstr_tok: ["A","visitor","that","packs","combine","nodes","in","the","graph",".","This","visitor","takes","the","grouped","combines","and","performs","the","packing","of","those","combines",".","Before","packing","GrandParentNode","\/","\\","ExtractFromDict1","ExtractFromDict2","\/","\\","Combine1","Combine2","After","packing","GrandParentNode","|","PackedCombine","\/","\\","ExtractFromDict1","'","ExtractFromDict2'","The","ExtractFromDict","nodes","after","packing","extracts","the","accumulator","corresponding","to","the","individual","combines","."]
code: def _get_packed_combine(self, operation_def, input_values):
      grand_parent_label = self._combine_to_grand_parent[
          operation_def.label
      ]
      # If we are seeing a combine from a group for the first time, create the
      # the packed combine node and cache it.
      if grand_parent_label not in self._packed_combine_cache:
          # Get the grand parent node of the CacheableCombineAccumulate node.
          # We will make this node as the parent of the
          # PackedCombineAccumulate node.
          assert len(input_values) == 1
          parent_node = input_values[0]
          assert isinstance(
              parent_node.parent_operation.operation_def,
              beam_nodes.ExtractFromDict,
          )
          assert len(parent_node.parent_operation.inputs) == 1
          grand_parent_node = parent_node.parent_operation.inputs[0]
          assert (
              grand_parent_node.parent_operation.operation_def.label
              == grand_parent_label
          )
          self._packed_combine_cache[
              grand_parent_label
          ] = nodes.apply_operation(
              analyzer_nodes.PackedCombineAccumulate,
              grand_parent_node,
              combiners=self._packable_combines[grand_parent_label],
              label="PackedCombineAccumulate[{}]".format(
                  grand_parent_label
              ),
          )
      # For the current combine, create the ExtractFromDict node which
      # extracts the accumulator corresponding to this combine from the
      # packed combine output.
      result = nodes.apply_operation(
          beam_nodes.ExtractFromDict,
          self._packed_combine_cache[grand_parent_label],
          keys=operation_def.label,
          label=operation_def.label,
      )
      return (result,)
  
imports: import collections
  import dataclasses
  from typing import Sequence
  from tensorflow_transform import analyzer_nodes
  from tensorflow_transform import nodes
  from tensorflow_transform.beam import beam_nodes
label_desc: Use image node_id 3 for calling the _PackAccumulateCombineVisitor obj's underlying member method code with example usage: obj._get_packed_combine(operation_def, input_values) and returns: result