nodes: 0, module; 1, function_definition; 2, function_name:_topological_sort; 3, parameters; 4, block; 5, identifier:self; 6, identifier:targets; 7, expression_statement; 8, expression_statement; 9, return_statement; 10, comment:"""Topologically order a list of targets"""; 11, assignment; 12, list_comprehension; 13, identifier:target_set; 14, call; 15, identifier:t; 16, for_in_clause; 17, if_clause; 18, identifier:set; 19, argument_list; 20, identifier:t; 21, call; 22, comparison_operator:t in target_set; 23, identifier:targets; 24, identifier:reversed; 25, argument_list; 26, identifier:t; 27, identifier:target_set; 28, call; 29, identifier:sort_targets; 30, argument_list; 31, identifier:targets
code: def _topological_sort(self, targets):
      """Topologically order a list of targets"""
  
      target_set = set(targets)
      return [t for t in reversed(sort_targets(targets)) if t in target_set]