code: def get_uniform_neighbor_sample_args(
      G, seed, batch_size, fanout, with_replacement
  ):
      """
      Return a dictionary containing the args for uniform_neighbor_sample based
      on the graph and desired args passed in. For example, if a large start list
      and small fanout list is desired, a "large" (based on graph size) list of
      valid vert IDs for the graph passed in and a "small" list of fanout values
      will be returned.
  
      The dictionary return value allows for easily supporting other args without
      having to maintain an order of values in a return tuple, for example.
      """
      if with_replacement not in [True, False]:
          raise ValueError(f"got unexpected value {with_replacement=}")
  
      num_verts = G.total_number_of_nodes
  
      if batch_size > num_verts:
          num_start_verts = int(num_verts * 0.25)
      else:
          num_start_verts = batch_size
  
      srcs = G.graphstore.gdata.get_edge_data()["_SRC_"]
      start_list = srcs.head(num_start_verts)
      assert len(start_list) == num_start_verts
  
      return {
          "seed_nodes": torch.as_tensor(start_list.values),
          "fanout": fanout,
          "with_replacement": with_replacement,
      }
  
imports: from dask_cuda import LocalCUDACluster
  from dask.distributed import Client
  import dask_cudf
  import time
  import os
  import pytest
  import numpy
  import cupy
  import pytest_benchmark
  from cugraph.generators import rmat
  from cugraph.experimental import datasets
  from cugraph_benchmarking import params
  from cugraph_dgl import CuGraphStorage
  from cugraph.dask.comms import comms
  import dgl
  import torch
  import rmm
label_desc: Use image node_id 3 for calling a global function with example usage: get_uniform_neighbor_sample_args(G, seed, batch_size, fanout, with_replacement) and returns: dict