code: def _find_and_wrap_parent(
      datapipe_graph,
      datapipe_adjlist,
      target_datapipe,
      wrapper,
      **kwargs,
  ):
      """Find parent of target_datapipe and wrap it with ."""
      datapipes = dp_utils.find_dps(
          datapipe_graph,
          target_datapipe,
      )
      for datapipe in datapipes:
          datapipe_id = id(datapipe)
          for parent_datapipe_id in datapipe_adjlist[datapipe_id][1]:
              parent_datapipe, _ = datapipe_adjlist[parent_datapipe_id]
              datapipe_graph = dp_utils.replace_dp(
                  datapipe_graph,
                  parent_datapipe,
                  wrapper(parent_datapipe, **kwargs),
              )
  
file_path: dgl/python/dgl/graphbolt/dataloader.py
imports: import torch.utils.data
  import torchdata.dataloader2.graph
  import torchdata.datapipes
  from .base import CopyTo
  from .feature_fetcher import FeatureFetcher
  from .internal import datapipe_graph_to_adjlist
  from .item_sampler import ItemSampler
label_desc: Use image node_id 1 for calling a global function with example usage: _find_and_wrap_parent(datapipe_graph, datapipe_adjlist, target_datapipe, wrapper) without return types