code: def get_edges_dict_from_dgl_HeteroGraph(
      graph: dgl.DGLHeteroGraph, single_gpu: bool
  ) -> Dict[
      Tuple[str, str, str], Union[cudf.DataFrame, dask_cudf.DataFrame]
  ]:
      etype_d = {}
      for can_etype in graph.canonical_etypes:
          src_t, dst_t = graph.edges(form="uv", etype=can_etype)
          etype_d[can_etype] = _create_edge_frame(
              src_t, dst_t, single_gpu
          )
      return etype_d
  
file_path: cugraph/python/cugraph-dgl/cugraph_dgl/utils/cugraph_conversion_utils.py
imports: from __future__ import annotations
  from typing import Dict, Tuple, Union
  import cudf
  import pandas
  import dask.dataframe
  import dask_cudf
  from dask.distributed import get_client
  import cupy
  from cugraph.utilities.utils import import_optional
  from cugraph.gnn.dgl_extensions.dgl_uniform_sampler import src_n, dst_n
label_desc: Use image node_id 5 for calling a global function with example usage: get_edges_dict_from_dgl_HeteroGraph(graph, single_gpu) and returns: etype_d