diff --git a/src/graph.py b/src/graph.py index 11d9872a55582d48cdb9f459d2dfb1215462e446..e0e5dc58f0801f96967db05001c26b96cdd01766 100644 --- a/src/graph.py +++ b/src/graph.py @@ -23,6 +23,7 @@ class Graph(): self.link_dico = None #Dico to graph without operations self.dico_process_dependency_graph = {} + self.user_view = {} self.user_view_with_subworkflows = {} self.new_nodes_user_view = [] self.dico_wo_branch_operation = {} @@ -313,17 +314,17 @@ class Graph(): self.initialise_flattened_dico(self.full_dico) dico = remove_artificial_nodes(self.dico_flattened) - user_view, self.new_nodes_user_view = relev_user_view_builder(dico, relevant_modules=relevant_processes) + self.user_view, self.new_nodes_user_view = relev_user_view_builder(dico, relevant_modules=relevant_processes) with open(self.get_output_dir()/ "graphs/user_view.json", 'w') as output_file : - json.dump(user_view, output_file, indent=4) + json.dump(self.user_view, output_file, indent=4) - user_view_with_subworkflows = add_subworkflows_2_dico(self.dico_process_dependency_graph, user_view) + user_view_with_subworkflows = add_subworkflows_2_dico(self.dico_process_dependency_graph, self.user_view) with open(self.get_output_dir()/ "graphs/user_view_with_subworkflows.json", 'w') as output_file : json.dump(user_view_with_subworkflows, output_file, indent=4) - return user_view, user_view_with_subworkflows + return self.user_view, user_view_with_subworkflows def generate_user_view(self, relevant_processes = [], render_graphs = True): user_view, user_view_with_subworkflows = self.get_user_view_graph(relevant_processes = relevant_processes) @@ -332,15 +333,16 @@ class Graph(): generate_graph(self.get_output_dir()/'graphs'/"user_view_with_subworkflows", user_view_with_subworkflows, label_edge=True, label_node=True, render_graphs = render_graphs, root = False, relevant_nodes = copy.deepcopy(relevant_processes)) + #This method returns the list of the clusters in topological order def get_clusters_from_user_view(self): + topological_order = topological_sort(initia_link_dico_rec(self.user_view)) tab = [] - for cluster in self.new_nodes_user_view: + for cluster in topological_order: temp = [] - for ele in cluster: + for ele in cluster.split("_$$_"): temp.append(get_object(ele)) tab.append(temp) - return tab #============================ diff --git a/src/workflow.py b/src/workflow.py index faeb68e26f70cebc7cff48d82d1c875770871d1e..80585ba6249642b65430ffdc2bd5da15dfe58dfe 100644 --- a/src/workflow.py +++ b/src/workflow.py @@ -804,6 +804,8 @@ George Marchment, Bryan Brancotte, Marie Schmit, Frédéric Lemoine, Sarah Cohen # else: # print(c, c.get_code()[:20], c.artificial) + for c in clusters: + print(len(c)) for cluster in clusters: tab = [] for e in executors_in_order: