code: def get_loader(self, epoch: int = 0, stage="train") -> int:
      import logging
  
      logger = logging.getLogger("PyGCuGraphTrainer")
  
      logger.info(f"getting loader for epoch {epoch}, {stage} stage")
  
      # TODO support online sampling
      if stage == "val":
          path = os.path.join(self.__sample_dir, "val", "samples")
      else:
          path = os.path.join(
              self.__sample_dir, f"epoch={epoch}", stage, "samples"
          )
  
      loader = BulkSampleLoader(
          self.data,
          self.data,
          None,  # FIXME get input nodes properly
          directory=path,
          input_files=self.get_input_files(
              path, epoch=epoch, stage=stage
          ),
          **self.__loader_kwargs,
      )
  
      logger.info(f"got loader successfully on rank {self.rank}")
      return loader
  
imports: from .trainers_pyg import PyGTrainer
  from models.pyg import CuGraphSAGE
  import torch
  import numpy
  from torch.nn.parallel import DistributedDataParallel
  from cugraph.gnn import FeatureStore
  from cugraph_pyg.data import CuGraphStore
  from cugraph_pyg.loader import BulkSampleLoader
  import os
label_desc: Use image node_id 7 for calling the PyGCuGraphTrainer obj's underlying member method code with example usage: obj.get_loader(epoch, stage) and returns: loader