docstr: Args:
      config: a yaml configure file or a dict of parameters
      Below are some necessary hyper-parameters:
      ```
          etype2files: "u2e2t:./your_path/edges.txt"
          symmetry: True
          ntype2files: "u:./your_path/node_types.txt,t:./your_path/node_types.txt"
  
      ```
  
      shard_num: int, the sharding number of graph data
  
      ip_config: list of IP address or a path of IP configuration file
      
      For example, the following TXT shows a 4-machine configuration:
  
          172.31.50.123:8245
          172.31.50.124:8245
          172.31.50.125:8245
          172.31.50.126:8245
  
      client_id: int 
  
      use_cache: bool
docstr_tok: ["Args",":","config",":","a","yaml","configure","file","or","a","dict","of","parameters","Below","are","some","necessary","hyper-parameters",":","``","`","etype2files",":","``","u2e2t",":",".\/your_path\/edges.txt","''","symmetry",":","True","ntype2files",":","``","u",":",".\/your_path\/node_types.txt",",","t",":",".\/your_path\/node_types.txt","''","``","`","shard_num",":","int",",","the","sharding","number","of","graph","data","ip_config",":","list","of","IP","address","or","a","path","of","IP","configuration","file","For","example",",","the","following","TXT","shows","a","4-machine","configuration",":","172.31.50.123:8245","172.31.50.124:8245","172.31.50.125:8245","172.31.50.126:8245","client_id",":","int","use_cache",":","bool"]
code: def __init__(
      self, config, shard_num, ip_config, client_id, use_cache=False
  ):
      """
      Args:
          config: a yaml configure file or a dict of parameters
          Below are some necessary hyper-parameters:
          ```
              etype2files: "u2e2t:./your_path/edges.txt"
              symmetry: True
              ntype2files: "u:./your_path/node_types.txt,t:./your_path/node_types.txt"
  
          ```
  
          shard_num: int, the sharding number of graph data
  
          ip_config: list of IP address or a path of IP configuration file
  
          For example, the following TXT shows a 4-machine configuration:
  
              172.31.50.123:8245
              172.31.50.124:8245
              172.31.50.125:8245
              172.31.50.126:8245
  
          client_id: int
  
          use_cache: bool
  
      """
      self.config = helper.load_config(config)
      self.shard_num = shard_num
      self.client_id = client_id
  
      if self.config.symmetry:
          self.symmetry = self.config.symmetry
      else:
          self.symmetry = False
  
      if self.config.node_batch_stream_shuffle_size:
          self.stream_shuffle_size = (
              self.config.node_batch_stream_shuffle_size
          )
      else:
          warnings.warn(
              "node_batch_stream_shuffle_size is not specified, "
              "default value is 20000"
          )
          self.stream_shuffle_size = 20000
  
      self.ip_addr = helper.load_ip_addr(ip_config)
      self.server_num = len(self.ip_addr.split(";"))
  
      if self.config.nfeat_info is not None:
          self.nfeat_info = helper.convert_nfeat_info(
              self.config.nfeat_info
          )
      else:
          self.nfeat_info = None
  
      self.ntype2files = helper.parse_files(self.config.ntype2files)
      self.node_type_list = list(self.ntype2files.keys())
  
      self.etype2files = helper.parse_files(self.config.etype2files)
      self.edge_type_list = helper.get_all_edge_type(
          self.etype2files, self.symmetry
      )
  
      self._client = core.GraphPyClient()
      self._client.set_up(
          self.ip_addr,
          self.shard_num,
          self.node_type_list,
          self.edge_type_list,
          self.client_id,
      )
      self._client.start_client()
  
      if use_cache:
          for etype in self.edge_type_list:
              self._client.use_neighbors_sample_cache(etype, 100000, 6)
  
imports: import os
  import sys
  import time
  import argparse
  import warnings
  import numpy
  from functools import partial
  from paddle.framework import core
  from pgl.utils.logger import log
  from pgl.distributed import helper
label_desc: Use image node_id 1 to create a new DistGraphClient object from inherited base classes: object with example: obj = DistGraphClient(config, shard_num, ip_config, client_id, use_cache)