From 3dd4c955e4d0c6ff3d66ac3f4c98847e6fff088b Mon Sep 17 00:00:00 2001 From: George Marchment <georgemarchment@yahoo.fr> Date: Tue, 25 Mar 2025 14:34:32 +0100 Subject: [PATCH] Update the get_code of operations --- src/channel.py | 2 +- src/code_.py | 3 ++- src/executor.py | 8 -------- src/main.py | 2 +- src/operation.py | 7 +++++-- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/channel.py b/src/channel.py index f0ffc4b..bcd76de 100644 --- a/src/channel.py +++ b/src/channel.py @@ -26,7 +26,7 @@ class Channel(Nextflow_Building_Blocks): - def get_code(self, get_OG = True): + def get_code(self, get_OG = True, replace_calls =False, clean_pipe=True, remove_emit_and_take=True): """Method that returns the channels code Keyword arguments: diff --git a/src/code_.py b/src/code_.py index 0a6a0cb..2ba19ea 100644 --- a/src/code_.py +++ b/src/code_.py @@ -107,7 +107,8 @@ class Code: _, end_condition = match.span(1) extracted_condition = get_code_until_parenthese_count(code=temp_code[end_condition:], val=-1) condition = extracted_condition[:-1] - body = extarcted.replace(extracted_condition.strip(), "").strip() + #body = extarcted.replace(extracted_condition.strip(), "", 1).strip() + body = re.sub(r"if *\("+re.escape(extracted_condition.strip()), "", all).strip() if(body!="" and body[0]!="{"): new = f"if ({condition}) {{\n{body}\n}}\n" to_replace.append((all, new)) diff --git a/src/executor.py b/src/executor.py index bb09018..0073716 100644 --- a/src/executor.py +++ b/src/executor.py @@ -117,14 +117,6 @@ class Executor(Nextflow_Building_Blocks): self.origin.add_element_to_elements_being_called(element) - def get_code(self, get_OG=False): - if(get_OG): - if(self.OG_code==""): - return self.code.get_code() - else: - return self.OG_code - else: - return self.code.get_code() def clean_pipe_operator(self, pipe): diff --git a/src/main.py b/src/main.py index 6101b3c..477c0b5 100644 --- a/src/main.py +++ b/src/main.py @@ -54,7 +54,7 @@ class Main(Nextflow_Building_Blocks): for exe in sorted_executor_2_length: if(exe.get_type()=="Call" or exe.get_type()=="Operation"): - old = exe.get_code(get_OG = True, remove_emit_and_take = True, replace_calls = False) + old = exe.get_code(remove_emit_and_take = True, replace_calls = False) new = exe.simplify_code(return_tab = False) if(new!=old): temp = code diff --git a/src/operation.py b/src/operation.py index d539056..3b2b9ff 100644 --- a/src/operation.py +++ b/src/operation.py @@ -683,7 +683,7 @@ class Operation(Executor): def write_summary(self, address, tab = 0): file = open(address, "a") file.write(" "*tab+f"{self}\n") - file.write(" "*(tab+1)+"* Code : "+str(self.get_code())+ "\n") + file.write(" "*(tab+1)+"* Code : "+str(self.get_code(get_OG=True))+ "\n") file.write(" "*(tab+1)+"* Origins"+ "\n") for o in self.get_origins(): file.write(" "*(tab+1+2)+o.get_code()+ f" '{o.get_type()}'\n") @@ -702,6 +702,8 @@ class Operation(Executor): if(get_OG): if(self.OG_code!=""): code = self.OG_code + return code + if(clean_pipe): code, self.dico_OG_call_2_new_call = self.clean_pipe_operator(code) @@ -957,7 +959,8 @@ class Operation(Executor): to_add = [] dico_origin_2_replace = {} for o in self.origins: - OG_code = o.get_code(get_OG=True) + #OG_code = o.get_code(get_OG=True) + OG_code = o.get_code(replace_calls =False, clean_pipe=True, remove_emit_and_take=True) try: tmp = dico_origin_2_replace[OG_code] except: -- GitLab