code: def generate_read_list(num_files, world_size):
      """
      Generate the file IDs to read for each rank
      using sequential assignment.
  
  
      Parameters:
      -----------
      num_files : int
          Total number of files.
      world_size : int
          World size of group.
  
      Returns:
      --------
      read_list : np.array
          Array of target file IDs to read. Each worker is expected
          to read the list of file indexes in its rank's index in the list.
          e.g. rank 0 reads the file indexed in read_list[0], rank 1 the
          ones in read_list[1] etc.
  
  
      Examples
      --------
      >>> tools.distpartitionning.utils.generate_read_list(10, 4)
      [array([0, 1, 2]), array([3, 4, 5]), array([6, 7]), array([8, 9])]
      """
      return np.array_split(np.arange(num_files), world_size)
  
imports: import json
  import logging
  import os
  from itertools import cycle
  import constants
  import dgl
  import numpy
  import psutil
  import pyarrow
  import torch
  from dgl.distributed.partition import _dump_part_config
  from pyarrow import csv
label_desc: Use image node_id 22 for calling a global function with example usage: generate_read_list(num_files, world_size) and returns: np