code: def _call_plc_replicate_edgelist(
      sID: bytes, edgelist_df: cudf.DataFrame, col_names: list
  ) -> cudf.DataFrame:
      edgelist_df = edgelist_df[0]
      cp_arrays = pylibcugraph_replicate_edgelist(
          resource_handle=ResourceHandle(
              Comms.get_handle(sID).getHandle()
          ),
          src_array=edgelist_df[col_names[0]],
          dst_array=edgelist_df[col_names[1]],
          weight_array=edgelist_df[col_names[2]]
          if len(col_names) > 2
          else None,
          edge_id_array=edgelist_df[col_names[3]]
          if len(col_names) > 3
          else None,
          edge_type_id_array=edgelist_df[col_names[4]]
          if len(col_names) > 4
          else None,
      )
      return _convert_to_cudf(cp_arrays, col_names)
  
file_path: cugraph/python/cugraph/cugraph/structure/replicate_edgelist.py
imports: import dask_cudf
  import cudf
  from dask.distributed import wait, default_client
  import numpy
  from pylibcugraph import ResourceHandle, replicate_edgelist
  from cugraph.dask.common.part_utils import get_persisted_df_worker_map, persist_dask_df_equal_parts_per_worker
  import dask
  import cupy
  import cugraph.dask.comms.comms
  from typing import Union, Tuple
label_desc: Use image node_id 2 for calling a global function with example usage: _call_plc_replicate_edgelist(sID, edgelist_df, col_names) and returns: _convert_to_cudf