code: def process(self):
      add_inverse_edge = self.meta_info["add_inverse_edge"] == "True"
  
      if self.meta_info["additional node files"] == "None":
          additional_node_files = []
      else:
          additional_node_files = self.meta_info[
              "additional node files"
          ].split(",")
  
      if self.meta_info["additional edge files"] == "None":
          additional_edge_files = []
      else:
          additional_edge_files = self.meta_info[
              "additional edge files"
          ].split(",")
  
      if self.is_hetero:
          data = read_heterograph_pyg(
              self.raw_dir,
              add_inverse_edge=add_inverse_edge,
              additional_node_files=additional_node_files,
              additional_edge_files=additional_edge_files,
              binary=self.binary,
          )[0]
  
          if self.binary:
              tmp = np.load(osp.join(self.raw_dir, "node-label.npz"))
              node_label_dict = {}
              for key in list(tmp.keys()):
                  node_label_dict[key] = tmp[key]
              del tmp
          else:
              node_label_dict = read_node_label_hetero(self.raw_dir)
  
          data.y_dict = {}
          if "classification" in self.task_type:
              for nodetype, node_label in node_label_dict.items():
                  # detect if there is any nan
                  if np.isnan(node_label).any():
                      data.y_dict[nodetype] = torch.from_numpy(
                          node_label
                      ).to(torch.float32)
                  else:
                      data.y_dict[nodetype] = torch.from_numpy(
                          node_label
                      ).to(torch.long)
          else:
              for nodetype, node_label in node_label_dict.items():
                  data.y_dict[nodetype] = torch.from_numpy(
                      node_label
                  ).to(torch.float32)
  
      else:
          data = read_graph_pyg(
              self.raw_dir,
              add_inverse_edge=add_inverse_edge,
              additional_node_files=additional_node_files,
              additional_edge_files=additional_edge_files,
              binary=self.binary,
          )[0]
  
          ### adding prediction target
          if self.binary:
              node_label = np.load(
                  osp.join(self.raw_dir, "node-label.npz")
              )["node_label"]
          else:
              node_label = pd.read_csv(
                  osp.join(self.raw_dir, "node-label.csv.gz"),
                  compression="gzip",
                  header=None,
              ).values
  
          if "classification" in self.task_type:
              # detect if there is any nan
              if np.isnan(node_label).any():
                  data.y = torch.from_numpy(node_label).to(
                      torch.float32
                  )
              else:
                  data.y = torch.from_numpy(node_label).to(torch.long)
  
          else:
              data.y = torch.from_numpy(node_label).to(torch.float32)
  
      data = (
          data
          if self.pre_transform is None
          else self.pre_transform(data)
      )
  
      print("Saving...")
      torch.save(self.collate([data]), self.processed_paths[0])
  
file_path: ogb/ogb/nodeproppred/dataset_pyg.py
imports: import pandas
  import shutil, os
  import os.path
  import torch
  import numpy
  from torch_geometric.data import InMemoryDataset
  from ogb.utils.url import decide_download, download_url, extract_zip
  from ogb.io.read_graph_pyg import read_graph_pyg, read_heterograph_pyg
  from ogb.io.read_graph_raw import read_node_label_hetero, read_nodesplitidx_split_hetero
label_desc: Use image node_id 7 for calling the PygNodePropPredDataset obj's underlying member method code with example usage: obj.process() without return types