docstr: Returns all nodes in the graph as a dask_cudf.Series.
  If multi columns vertices, return a dask_cudf.DataFrame.
  
  If the edgelist was renumbered, this call returns the internal
  nodes in the graph. To get the original nodes, convert the result to
  a dataframe and do 'renumber_map.unrenumber' or 'G.unrenumber'
docstr_tok: ["Returns","all","nodes","in","the","graph","as","a","dask_cudf.Series",".","If","multi","columns","vertices",",","return","a","dask_cudf.DataFrame",".","If","the","edgelist","was","renumbered",",","this","call","returns","the","internal","nodes","in","the","graph",".","To","get","the","original","nodes",",","convert","the","result","to","a","dataframe","and","do","'renumber_map.unrenumber","'","or","'","G.unrenumber","'"]
code: def nodes(self):
      """
      Returns all nodes in the graph as a dask_cudf.Series.
      If multi columns vertices, return a dask_cudf.DataFrame.
  
      If the edgelist was renumbered, this call returns the internal
      nodes in the graph. To get the original nodes, convert the result to
      a dataframe and do 'renumber_map.unrenumber' or 'G.unrenumber'
      """
  
      if self.edgelist is not None:
          if self.renumbered:
              # FIXME: This relies on current implementation
              #        of NumberMap, should not really expose
              #        this, perhaps add a method to NumberMap
  
              df = self.renumber_map.implementation.ddf.drop(
                  columns="global_id"
              )
  
              if len(df.columns) > 1:
                  return df
              else:
                  return df[df.columns[0]]
  
          else:
              df = self.input_df
              return dask_cudf.concat(
                  [
                      df[self.source_columns],
                      df[self.destination_columns],
                  ]
              ).drop_duplicates()
      else:
          raise RuntimeError("Graph is Empty")
  
imports: import gc
  from typing import Union
  import warnings
  import cudf
  import cupy
  import dask
  import dask_cudf
  from dask import delayed
  from dask.distributed import wait, default_client
  import numpy
  from pylibcugraph import MGGraph, ResourceHandle, GraphProperties, get_two_hop_neighbors, select_random_vertices
  from cugraph.structure import graph_primtypes_wrapper
  from cugraph.structure.graph_primtypes_wrapper import Direction
  from cugraph.structure.number_map import NumberMap
  from cugraph.structure.symmetrize import symmetrize
  from cugraph.dask.common.part_utils import get_persisted_df_worker_map, persist_dask_df_equal_parts_per_worker
  from cugraph.dask.common.mg_utils import run_gc_on_dask_cluster
  from cugraph.dask import get_n_workers
  import cugraph.dask.comms.comms
label_desc: Use image node_id 23 for calling the simpleDistributedGraphImpl obj's underlying member method code with example usage: obj.nodes() and returns: dask_cudf, df, df