code: def create_empty_df_with_edge_props(
      indices_t,
      weight_t,
      return_offsets=False,
      renumber=False,
      use_legacy_names=True,
      include_hop_column=True,
      compression="COO",
  ):
      if compression != "COO":
          majors_name = "major_offsets"
      else:
          majors_name = src_n if use_legacy_names else "majors"
  
      minors_name = dst_n if use_legacy_names else "minors"
  
      if renumber:
          empty_df_renumber = cudf.DataFrame(
              {
                  map_n: numpy.empty(shape=0, dtype=indices_t),
                  map_offsets_n: numpy.empty(shape=0, dtype="int32"),
              }
          )
  
      if return_offsets:
          df = cudf.DataFrame(
              {
                  majors_name: numpy.empty(shape=0, dtype=indices_t),
                  minors_name: numpy.empty(shape=0, dtype=indices_t),
                  weight_n: numpy.empty(shape=0, dtype=weight_t),
                  edge_id_n: numpy.empty(shape=0, dtype=indices_t),
                  edge_type_n: numpy.empty(shape=0, dtype="int32"),
              }
          )
  
          if include_hop_column:
              df[hop_id_n] = numpy.empty(shape=0, dtype="int32")
  
          empty_df_offsets = cudf.DataFrame(
              {
                  offsets_n: numpy.empty(shape=0, dtype="int32"),
                  batch_id_n: numpy.empty(shape=0, dtype="int32"),
              }
          )
  
          if renumber:
              return df, empty_df_offsets, empty_df_renumber
          else:
              return df, empty_df_offsets
      else:
          df = cudf.DataFrame(
              {
                  majors_name: numpy.empty(shape=0, dtype=indices_t),
                  minors_name: numpy.empty(shape=0, dtype=indices_t),
                  weight_n: numpy.empty(shape=0, dtype=weight_t),
                  edge_id_n: numpy.empty(shape=0, dtype=indices_t),
                  edge_type_n: numpy.empty(shape=0, dtype="int32"),
                  batch_id_n: numpy.empty(shape=0, dtype="int32"),
                  hop_id_n: numpy.empty(shape=0, dtype="int32"),
              }
          )
          if renumber:
              return df, empty_df_renumber
          else:
              return df
  
imports: from __future__ import annotations
  import warnings
  import numpy
  from dask import delayed
  from dask.distributed import Lock, get_client, wait
  import dask_cudf
  import cudf
  import cupy
  from pylibcugraph import ResourceHandle
  from pylibcugraph import uniform_neighbor_sample
  from cugraph.dask.comms import comms
  from cugraph.dask import get_n_workers
  from typing import Sequence, List, Union, Tuple
  from typing import TYPE_CHECKING
  from cugraph.dask.common.part_utils import get_persisted_df_worker_map, persist_dask_df_equal_parts_per_worker
label_desc: Use image node_id 2 for calling a global function with example usage: create_empty_df_with_edge_props(indices_t, weight_t, return_offsets, renumber, use_legacy_names, include_hop_column, compression) and returns: df,  empty_df_offsets,  empty_df_renumber, df,  empty_df_offsets, df,  empty_df_renumber, df