code: def _get_topological_sort(self):
      self.topological_sort = self.input_layers[:]
      idx = 0
      while idx < len(self.topological_sort):
          current_node = self.get_node(self.topological_sort[idx])
          for next_node in current_node.out_edges:
              next_node_info = self.get_node(next_node)
              next_node_info.left_in_edges -= self._check_left_in_edges_num(
                  current_node.name, next_node_info
              )  # one node may connect another node by more than one edge.
              # next_node_info.left_in_edges -= 1
              if next_node_info.left_in_edges == 0:
                  self.topological_sort.append(next_node)
          idx += 1
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
label_desc: Use image node_id 12 for calling the Graph obj's underlying member method code with example usage: obj._get_topological_sort() without return types