code: def get_neighbors_sage(self, n_id):
      neighbors = []
      neighbor_src = []
      hop_edge_types = self.metapath[0]
      count = self.fanouts[0]
      n_id = tf.reshape(n_id, [-1])
      one_neighbor, _w, _ = tf_euler.sample_neighbor(
          n_id, hop_edge_types, count, defulat_node=self.max_id + 1
      )
      neighbors.append(tf.reshape(one_neighbor, [-1]))
      node_src = tf.range(tf.size(n_id))
      node_src = tf.tile(tf.reshape(node_src, [-1, 1]), [1, count])
      node_src = tf.reshape(node_src, [-1])
      neighbor_src.append(node_src)
      return neighbors, neighbor_src
  
file_path: euler/tf_euler/python/dataflow/layerwise_dataflow.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  import tf_euler
  from tf_euler.python.dataflow.neighbor_dataflow import UniqueDataFlow
  from tf_euler.python.dataflow.neighbor_dataflow import NeighborDataFlow
label_desc: Use image node_id 2 for calling the LayerwiseEachDataFlow obj's underlying member method code with example usage: obj.get_neighbors_sage(n_id) and returns: neighbors,  neighbor_src