class_docstr: The GOOD-CBAS dataset. Modified from `BA-Shapes
  <https://proceedings.neurips.cc/paper/2019/hash/d80b7040b773199015de6d3b4293c8ff-Abstract.html>`_.
  
  Args:
      root (str): The dataset saving root.
      domain (str): The domain selection. Allowed: 'color'.
      shift (str): The distributional shift we pick. Allowed: 'no_shift', 'covariate', and 'concept'.
      generate (bool): The flag for regenerating dataset. True: regenerate. False: download.
class_docstr_tok: ["The","GOOD-CBAS","dataset",".","Modified","from","`","BA-Shapes","<","https",":","\/\/proceedings.neurips.cc\/paper\/2019\/hash\/d80b7040b773199015de6d3b4293c8ff-Abstract.html",">","`","_",".","Args",":","root","(","str",")",":","The","dataset","saving","root",".","domain","(","str",")",":","The","domain","selection",".","Allowed",":","'color","'",".","shift","(","str",")",":","The","distributional","shift","we","pick",".","Allowed",":","'no_shift","'",",","'covariate","'",",","and","'concept","'",".","generate","(","bool",")",":","The","flag","for","regenerating","dataset",".","True",":","regenerate",".","False",":","download","."]
docstr: A staticmethod for dataset loading. This method instantiates dataset class, constructing train, id_val, id_test,
  ood_val (val), and ood_test (test) splits. Besides, it collects several dataset meta information for further
  utilization.
  
  Args:
      dataset_root (str): The dataset saving root.
      domain (str): The domain selection. Allowed: 'degree' and 'time'.
      shift (str): The distributional shift we pick. Allowed: 'no_shift', 'covariate', and 'concept'.
      generate (bool): The flag for regenerating dataset. True: regenerate. False: download.
  
  Returns:
      dataset or dataset splits.
      dataset meta info.
docstr_tok: ["A","staticmethod","for","dataset","loading",".","This","method","instantiates","dataset","class",",","constructing","train",",","id_val",",","id_test",",","ood_val","(","val",")",",","and","ood_test","(","test",")","splits",".","Besides",",","it","collects","several","dataset","meta","information","for","further","utilization",".","Args",":","dataset_root","(","str",")",":","The","dataset","saving","root",".","domain","(","str",")",":","The","domain","selection",".","Allowed",":","'degree","'","and","'time","'",".","shift","(","str",")",":","The","distributional","shift","we","pick",".","Allowed",":","'no_shift","'",",","'covariate","'",",","and","'concept","'",".","generate","(","bool",")",":","The","flag","for","regenerating","dataset",".","True",":","regenerate",".","False",":","download",".","Returns",":","dataset","or","dataset","splits",".","dataset","meta","info","."]
code: def load(
      dataset_root: str,
      domain: str,
      shift: str = "no_shift",
      generate: bool = False,
  ):
      r"""
      A staticmethod for dataset loading. This method instantiates dataset class, constructing train, id_val, id_test,
      ood_val (val), and ood_test (test) splits. Besides, it collects several dataset meta information for further
      utilization.
  
      Args:
          dataset_root (str): The dataset saving root.
          domain (str): The domain selection. Allowed: 'degree' and 'time'.
          shift (str): The distributional shift we pick. Allowed: 'no_shift', 'covariate', and 'concept'.
          generate (bool): The flag for regenerating dataset. True: regenerate. False: download.
  
      Returns:
          dataset or dataset splits.
          dataset meta info.
      """
      meta_info = Munch()
      meta_info.dataset_type = "syn"
      meta_info.model_level = "node"
  
      dataset = GOODCBAS(
          root=dataset_root,
          domain=domain,
          shift=shift,
          generate=generate,
      )
      dataset.data.x = dataset.data.x.to(torch.float32)
      meta_info.dim_node = dataset.num_node_features
      meta_info.dim_edge = dataset.num_edge_features
  
      meta_info.num_envs = (
          torch.unique(dataset.data.env_id) >= 0
      ).sum()
  
      # Define networks' output shape.
      if dataset.task == "Binary classification":
          meta_info.num_classes = dataset.data.y.shape[1]
      elif dataset.task == "Regression":
          meta_info.num_classes = 1
      elif dataset.task == "Multi-label classification":
          meta_info.num_classes = torch.unique(dataset.data.y).shape[0]
  
      # --- clear buffer dataset._data_list ---
      dataset._data_list = None
  
      return dataset, meta_info
  
file_path: DIG/dig/oodgraph/good_cbas.py
imports: import os
  import os.path
  import gdown
  import torch
  from munch import Munch
  from torch_geometric.data import InMemoryDataset, extract_zip
label_desc: Use image node_id 7 for calling the GOODCBAS obj's underlying member method code with example usage: obj.load(dataset_root, domain, shift, generate) and returns: dataset,  meta_info