code: def read_nodesplitidx_split_hetero(split_dir):
      df = pd.read_csv(osp.join(split_dir, "nodetype-has-split.csv.gz"))
      train_dict = {}
      valid_dict = {}
      test_dict = {}
      for nodetype in df.keys():
          has_label = df[nodetype].values[0]
          if has_label:
              train_dict[nodetype] = pd.read_csv(
                  osp.join(split_dir, nodetype, "train.csv.gz"),
                  compression="gzip",
                  header=None,
              ).values.T[0]
              valid_dict[nodetype] = pd.read_csv(
                  osp.join(split_dir, nodetype, "valid.csv.gz"),
                  compression="gzip",
                  header=None,
              ).values.T[0]
              test_dict[nodetype] = pd.read_csv(
                  osp.join(split_dir, nodetype, "test.csv.gz"),
                  compression="gzip",
                  header=None,
              ).values.T[0]
  
      if len(train_dict) == 0:
          raise RuntimeError("No split file found.")
  
      return train_dict, valid_dict, test_dict
  
file_path: ogb/ogb/io/read_graph_raw.py
imports: import pandas
  import os.path
  import os
  import numpy
  from ogb.utils.url import decide_download, download_url, extract_zip
  from tqdm.auto import tqdm
label_desc: Use image node_id 7 for calling a global function with example usage: read_nodesplitidx_split_hetero(split_dir) and returns: train_dict,  valid_dict,  test_dict