code: def get_neighbors(self, n_id):
      neighbors = []
      types = []
      neighbor_src = []
      for i in range(len(self.metapath)):
          n_id = tf.reshape(n_id, [-1])
          one_neighbor, _, one_type = tf_euler.get_full_neighbor(
              n_id, self.metapath[i]
          )
          neighbors.append(tf.reshape(one_neighbor.values, [-1]))
          types.append(tf.reshape(one_type.values, [-1]))
          one_indices = one_neighbor.indices[:, 0]
          neighbor_src.append(tf.cast(one_indices, tf.int32))
          new_n_id = tf.reshape(one_neighbor.values, [-1])
          n_id = tf.concat([new_n_id, n_id], axis=0)
          n_id, _ = tf.unique(n_id)
  
      return neighbors, types, neighbor_src
  
file_path: euler/tf_euler/python/dataflow/relation_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.base_dataflow import DataFlow
label_desc: Use image node_id 2 for calling the RelationDataFlow obj's underlying member method code with example usage: obj.get_neighbors(n_id) and returns: neighbors,  types,  neighbor_src