docstr: Args:
      nodes: list of node ID
  
      max_degree: int, sample number of each node
  
      edge_type: str, edge type
  
      return_weight: bool, if True, then the edge weight will return
  
      return_edges: bool, if True, the complete edges will return
  
      split: bool, if True, the neighbors of nodes will be splited to corresponding node
docstr_tok: ["Args",":","nodes",":","list","of","node","ID","max_degree",":","int",",","sample","number","of","each","node","edge_type",":","str",",","edge","type","return_weight",":","bool",",","if","True",",","then","the","edge","weight","will","return","return_edges",":","bool",",","if","True",",","the","complete","edges","will","return","split",":","bool",",","if","True",",","the","neighbors","of","nodes","will","be","splited","to","corresponding","node"]
code: def sample_successor(
      self,
      nodes,
      max_degree,
      edge_type=None,
      return_weight=False,
      return_edges=False,
      split=True,
  ):
      """
      Args:
          nodes: list of node ID
  
          max_degree: int, sample number of each node
  
          edge_type: str, edge type
  
          return_weight: bool, if True, then the edge weight will return
  
          return_edges: bool, if True, the complete edges will return
  
          split: bool, if True, the neighbors of nodes will be splited to corresponding node
      """
  
      if edge_type is None:
          if len(self.edge_type_list) > 1:
              msg = "There are %s (%s) edge types in the Graph, " % (
                  len(self.edge_type_list),
                  self.edge_type_list,
              )
              msg += "The argument of edge_type should be specified, "
              msg += "but got [None]."
              raise ValueError(msg)
          else:
              edge_type = self.edge_type_list[0]
  
      def _split_by_index(x, index):
          splited = [tmp.tolist() for tmp in np.split(x, index)]
          return splited
  
      # res[0][0]: neigbors (nodes)
      # res[0][1]: numpy split index
      # res[0][2]: src nodes
      # res[1]: edge weights
      res = self._client.batch_sample_neighboors(
          edge_type, nodes, max_degree, return_weight, return_edges
      )
  
      if return_edges:
          if return_weight:
              return np.array([res[0][2], res[0][0]]).T, res[1]
          else:
              return np.array([res[0][2], res[0][0]]).T
      else:
          if return_weight:
              if split:
                  neighs = _split_by_index(res[0][0], res[0][1])
                  weights = _split_by_index(res[1], res[0][1])
                  return neighs, weights
              else:
                  return res[0][0], res[1]
          else:
              if split:
                  neighs = _split_by_index(res[0][0], res[0][1])
                  return neighs
              else:
                  return res[0][0]
  
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 5 for calling the DistGraphClient obj's underlying member method code with example usage: obj.sample_successor(nodes, max_degree, edge_type, return_weight, return_edges, split) and returns: splited, np,  res, np, neighs,  weights, res,  res, neighs, res