class_docstr: This is an implementation of a Distributed Lookup Service to provide the following
  services to its users. Map 1) global node-ids to partition-ids, and 2) global node-ids
  to shuffle global node-ids (contiguous, within each node for a give node_type and across
  all the partitions)
  
  This services initializes itself with the node-id to partition-id mappings, which are inputs
  to this service. The node-id to partition-id  mappings are assumed to be in one file for each
  node type. These node-id-to-partition-id mappings are split within the service processes so that
  each process ends up with a contiguous chunk. It first divides the no of mappings (node-id to
  partition-id) for each node type into equal chunks across all the service processes. So each
  service process will be thse owner of a set of node-id-to-partition-id mappings. This class
  has two functions which are as follows:
  
  1) `get_partition_ids` function which returns the node-id to partition-id mappings to the user
  2) `get_shuffle_nids` function which returns the node-id to shuffle-node-id mapping to the user
  
  Parameters:
  -----------
  input_dir : string
      string representing the input directory where the node-type partition-id
      files are located
  ntype_names : list of strings
      list of strings which are used to read files located within the input_dir
      directory and these files contents are partition-id's for the node-ids which
      are of a particular node type
  id_map : dgl.distributed.id_map instance
      this id_map is used to retrieve ntype-ids, node type ids, and type_nids, per type
      node ids, for any given global node id
  rank : integer
      integer indicating the rank of a given process
  world_size : integer
      integer indicating the total no. of processes
  num_parts : integer
      interger representing the no. of partitions
code: def set_idMap(self, id_map):
      self.id_map = id_map
  
file_path: dgl/tools/distpartitioning/dist_lookup.py
imports: import copy
  import logging
  import os
  import numpy
  import pyarrow
  import torch
  from gloo_wrapper import allgather_sizes, alltoallv_cpu
  from pyarrow import csv
  from utils import map_partid_rank
label_desc: Use image node_id 2 for calling the DistLookupService obj's underlying member method code with example usage: obj.set_idMap(id_map) without return types