class_docstr: Utility to find and replace the `source_type` in Python objects.
  
  `source_type` can either be a single type or a tuple of multiple types.
  
  The caller must first call `find_nodes()`, then compute a replacement table and
  pass it to `replace_nodes`.
  
  This uses cloudpickle under the hood, so all sub-objects that are not `source_type`
  must be serializable.
  
  Args:
      source_type: the type(s) of object to find and replace. Default to DAGNodeBase.
code: def _replace_index(self, i: int) -> SourceType:
      return self._replace_table[self._found[i]]
  
file_path: ray/python/ray/dag/py_obj_scanner.py
imports: import io
  from typing import Any, Dict, Generic, List, Tuple, Type, TypeVar, Union
  import pickle
  import ray
  from ray.dag.base import DAGNodeBase
label_desc: Use image node_id 5 for calling the _PyObjScanner obj's underlying member method code with example usage: obj._replace_index(i) and returns: self