code: def _call_plc_replicate_dataframe(
      sID: bytes, df: cudf.DataFrame
  ) -> cudf.DataFrame:
      df = df[0]
      df_replicated = cudf.DataFrame()
      for col_name in df.columns:
          cp_array = pylibcugraph_replicate_edgelist(
              resource_handle=ResourceHandle(
                  Comms.get_handle(sID).getHandle()
              ),
              src_array=df[col_name]
              if df[col_name].dtype in [np.int32, np.int64]
              else None,
              dst_array=None,
              weight_array=df[col_name]
              if df[col_name].dtype in [np.float32, np.float64]
              else None,
              edge_id_array=None,
              edge_type_id_array=None,
          )
          src, _, wgt, _, _, _ = cp_array
          if src is not None:
              df_replicated[col_name] = src
          elif wgt is not None:
              df_replicated[col_name] = wgt
  
      return df_replicated
  
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 3 for calling a global function with example usage: _call_plc_replicate_dataframe(sID, df) and returns: df_replicated