code: def _read_part_graphs(part_config, part_metafile):
      """Read partitioned graph objects from disk storage.
  
      Parameters:
      ----------
      part_config : json object
          json object created using the metadata file for the partitioned graph.
      part_metafile : string
          absolute path of the metadata.json file for the partitioned graph.
  
      Returns:
      --------
      list of tuples :
          where each tuple contains 4 objects in the following order:
              partitioned graph object
              global partition book
              node features
              edge features
      """
      part_graph_data = []
      for i in range(part_config["num_parts"]):
          part_g, node_feats, edge_feats, gpb, _, _, _ = load_partition(
              part_metafile, i
          )
          part_graph_data.append((part_g, node_feats, edge_feats, gpb))
      return part_graph_data
  
file_path: dgl/tools/verify_partitions.py
imports: import argparse
  import logging
  import os
  import platform
  import constants
  import dgl
  import numpy
  import pyarrow
  import pyarrow.parquet
  import torch
  from dgl.data.utils import load_graphs, load_tensors
  from dgl.distributed.partition import _etype_str_to_tuple, _etype_tuple_to_str, _get_inner_edge_mask, _get_inner_node_mask, load_partition, RESERVED_FIELD_DTYPE
  from utils import get_idranges, read_json
  from verification_utils import get_node_partids, read_file, read_orig_ids, verify_graph_feats, verify_metadata_counts, verify_node_partitionids, verify_partition_data_types, verify_partition_formats
label_desc: Use image node_id 2 for calling a global function with example usage: _read_part_graphs(part_config, part_metafile) and returns: part_graph_data