class_docstr: A visitor that inspects the graph and looks for merge combine nodes.
class_docstr_tok: ["A","visitor","that","inspects","the","graph","and","looks","for","merge","combine","nodes","."]
code: def _maybe_add_packable_combine(self, operation_def, input_values):
      if not isinstance(
          operation_def, analyzer_nodes.ExtractCombineMergeOutputs
      ):
          return
      # Verify we have a CacheableCombineMerge parent.
      parent = input_values[0].parent_operation
      if not isinstance(
          parent.operation_def, analyzer_nodes.CacheableCombineMerge
      ):
          return
      assert len(parent.inputs) == 1
      grand_parent = parent.inputs[0].parent_operation
      # We look for packable combines. Specifically, CacheableCombineMerge nodes
      # whose parent is one of the type in _COMBINE_PARENT_NODE_TYPES.
      if isinstance(
          grand_parent.operation_def, _COMBINE_PARENT_NODE_TYPES
      ):
          # This is a packable combine.
          self.packable_combine_extract_outputs[
              operation_def.label
          ] = _CombinerOpWrapper(
              combiner=parent.operation_def.combiner,
              keys=(parent.operation_def.label,),
              label=parent.operation_def.label,
          )
  
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 _InspectMergeCombineVisitor obj's underlying member method code with example usage: obj._maybe_add_packable_combine(operation_def, input_values) without return types