code: def produce_subgraph(self, n_id):
      inv = tf.range(tf.size(n_id))
      data_flow = DataFlow(n_id)
      edge_src, edge_dst = self.get_self_neighbors(n_id)
      new_n_id = n_id
      res_n_id = inv
      if self.add_self_loops:
          edge_dst = tf.concat([edge_dst, inv], axis=0)
          edge_src = tf.concat([edge_src, inv], axis=0)
      edge_index = tf.stack([edge_src, edge_dst], 0)
      e_id = None
      for i in range(self.num_hops):
          data_flow.append(new_n_id, res_n_id, e_id, edge_index)
      return data_flow
  
file_path: euler/tf_euler/python/dataflow/whole_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
  from tf_euler.python.dataflow.neighbor_dataflow import NeighborDataFlow
label_desc: Use image node_id 3 for calling the WholeDataFlow obj's underlying member method code with example usage: obj.produce_subgraph(n_id) and returns: data_flow