class_docstr: Symmetric Stochastic Block Model Mixture
  
  Reference: Appendix C of `Supervised Community Detection with Hierarchical Graph Neural Networks <https://arxiv.org/abs/1705.08415>`_
  
  Parameters
  ----------
  n_graphs : int
      Number of graphs.
  n_nodes : int
      Number of nodes.
  n_communities : int
      Number of communities.
  k : int, optional
      Multiplier. Default: 2
  avg_deg : int, optional
      Average degree. Default: 3
  pq : list of pair of nonnegative float or str, optional
      Random densities. This parameter is for future extension,
      for now it's always using the default value.
      Default: Appendix_C
  rng : numpy.random.RandomState, optional
      Random number generator. If not given, it's numpy.random.RandomState() with `seed=None`,
      which read data from /dev/urandom (or the Windows analogue) if available or seed from
      the clock otherwise.
      Default: None
  
  Raises
  ------
  RuntimeError is raised if pq is not a list or string.
  
  Examples
  --------
  >>> data = SBMMixtureDataset(n_graphs=16, n_nodes=10000, n_communities=2)
  >>> from torch.utils.data import DataLoader
  >>> dataloader = DataLoader(data, batch_size=1, collate_fn=data.collate_fn)
  >>> for graph, line_graph, graph_degrees, line_graph_degrees, pm_pd in dataloader:
  ...     # your code here
code: def graph_path(self):
      return os.path.join(
          self.save_path, "graphs_{}.bin".format(self.hash)
      )
  
imports: import math
  import os
  import random
  import numpy
  import numpy.random
  import scipy
  from ..None import batch
  from ..convert import from_scipy
  from .dgl_dataset import DGLDataset
  from .utils import load_graphs, load_info, save_graphs, save_info
label_desc: Use image node_id 3 for calling the SBMMixtureDataset obj's underlying member method code with example usage: obj.graph_path() and returns: os