class_docstr: A sampling graph in CSC format.
class_docstr_tok: ["A","sampling","graph","in","CSC","format","."]
code: def _convert_to_homogeneous_nodes(self, nodes, timestamps=None):
      homogeneous_nodes = []
      homogeneous_timestamps = []
      offset = self._node_type_offset_list
      for ntype, ids in nodes.items():
          ntype_id = self.node_type_to_id[ntype]
          homogeneous_nodes.append(ids + offset[ntype_id])
          if timestamps is not None:
              homogeneous_timestamps.append(timestamps[ntype])
      if timestamps is not None:
          return torch.cat(homogeneous_nodes), torch.cat(
              homogeneous_timestamps
          )
      return torch.cat(homogeneous_nodes)
  
imports: from typing import Dict, Optional, Union
  import torch
  from dgl.utils import recursive_apply
  from ...base import EID, ETYPE, NID, NTYPE
  from ...convert import to_homogeneous
  from ...heterograph import DGLGraph
  from ..base import etype_str_to_tuple, etype_tuple_to_str, ORIGINAL_EDGE_ID
  from ..sampling_graph import SamplingGraph
  from .sampled_subgraph_impl import CSCFormatBase, SampledSubgraphImpl
label_desc: Use image node_id 25 for calling the FusedCSCSamplingGraph obj's underlying member method code with example usage: obj._convert_to_homogeneous_nodes(nodes, timestamps) and returns: torch, torch,  torch