code: def __init__(
      self,
      total_number_of_nodes: int,
      edge_dir: str,
      return_type: str = "dgl.Block",
      sparse_format: str = "coo",
  ):
      if return_type not in ["dgl.Block", "cugraph_dgl.nn.SparseGraph"]:
          raise ValueError(
              "return_type must be either 'dgl.Block' or "
              "'cugraph_dgl.nn.SparseGraph'."
          )
      # TODO: Deprecate `total_number_of_nodes`
      # as it is no longer needed
      # in the next release
      self.total_number_of_nodes = total_number_of_nodes
      self.edge_dir = edge_dir
      self.sparse_format = sparse_format
      self._current_batch_fn = None
      self._input_files = None
      self._return_type = return_type
  
imports: from __future__ import annotations
  from typing import Tuple, Dict, Optional, List, Union
  import os
  import cudf
  from cugraph.utilities.utils import import_optional
  from cugraph_dgl.dataloading.utils.sampling_helpers import create_homogeneous_sampled_graphs_from_dataframe, create_heterogeneous_sampled_graphs_from_dataframe, create_homogeneous_sampled_graphs_from_dataframe_csc
label_desc: Use image node_id 1 to create a new HomogenousBulkSamplerDataset object from inherited base classes: torch.utils.data with example: obj = HomogenousBulkSamplerDataset(total_number_of_nodes, edge_dir, return_type, sparse_format)