docstr: Returns True if the graph contains the node(s) n.
  Examples
  --------
  >>> M = dask_cudf.read_csv(datasets_path / 'karate.csv', delimiter=' ',
  ...                   dtype=['int32', 'int32', 'float32'], header=None)
  >>> G = cugraph.Graph(directed=True)
  >>> G.from_dask_cudf_edgelist(M, '0', '1')
  >>> valid_source = cudf.Series([5])
  >>> invalid_source = cudf.Series([55])
  >>> is_valid_vertex = G.has_node(valid_source)
  >>> assert is_valid_vertex is True
  >>> is_valid_vertex = G.has_node(invalid_source)
  >>> assert is_valid_vertex is False
docstr_tok: ["Returns","True","if","the","graph","contains","the","node","(","s",")","n.","Examples","--","--","--","--",">",">",">","M","=","dask_cudf.read_csv","(","datasets_path","\/","'karate.csv","'",",","delimiter=","'","'",",","...","dtype=","[","'int32","'",",","'int32","'",",","'float32","'","]",",","header=None",")",">",">",">","G","=","cugraph.Graph","(","directed=True",")",">",">",">","G.from_dask_cudf_edgelist","(","M",",","'","0","'",",","'","1","'",")",">",">",">","valid_source","=","cudf.Series","(","[","5","]",")",">",">",">","invalid_source","=","cudf.Series","(","[","55","]",")",">",">",">","is_valid_vertex","=","G.has_node","(","valid_source",")",">",">",">","assert","is_valid_vertex","is","True",">",">",">","is_valid_vertex","=","G.has_node","(","invalid_source",")",">",">",">","assert","is_valid_vertex","is","False"]
code: def has_node(self, n):
      """
  
      Returns True if the graph contains the node(s) n.
      Examples
      --------
      >>> M = dask_cudf.read_csv(datasets_path / 'karate.csv', delimiter=' ',
      ...                   dtype=['int32', 'int32', 'float32'], header=None)
      >>> G = cugraph.Graph(directed=True)
      >>> G.from_dask_cudf_edgelist(M, '0', '1')
      >>> valid_source = cudf.Series([5])
      >>> invalid_source = cudf.Series([55])
      >>> is_valid_vertex = G.has_node(valid_source)
      >>> assert is_valid_vertex is True
      >>> is_valid_vertex = G.has_node(invalid_source)
      >>> assert is_valid_vertex is False
      """
  
      # Convert input to dataframes so that it can be compared through merge
      if not isinstance(n, (dask_cudf.DataFrame, cudf.DataFrame)):
          if isinstance(n, dask_cudf.Series):
              n = n.to_frame()
          else:
              df = cudf.DataFrame()
              if not isinstance(n, (cudf.DataFrame, cudf.Series)):
                  n = [n]
              if isinstance(n, (cudf.Series, list)):
                  df["vertex"] = n
                  n = df
  
      if isinstance(n, (dask_cudf.DataFrame, cudf.DataFrame)):
          nodes = self.nodes()
          if not isinstance(
              self.nodes(), (dask_cudf.DataFrame, cudf.DataFrame)
          ):
              nodes = nodes.to_frame()
  
          nodes.columns = n.columns
  
          valid_vertex = nodes.merge(n, how="inner")
          return len(valid_vertex) == len(n)
  
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 20 for calling the simpleDistributedGraphImpl obj's underlying member method code with example usage: obj.has_node(n) and returns: unknown