diff --git a/src/workflow.py b/src/workflow.py index b0c6fb0457f9b5c9d7b6c128a7b550edac2fc25c..2639f5e8036b57ecc06edf439835521b6ace35ad 100644 --- a/src/workflow.py +++ b/src/workflow.py @@ -626,10 +626,11 @@ George Marchment, Bryan Brancotte, Marie Schmit, Frédéric Lemoine, Sarah Cohen include_section = f"//INCLUDE_SECTION_{tag}" params_section = f"//PARAMS_SECTION_{tag}" + function_section = f"//FUNCTION_SECTION_{tag}" process_section = f"//PROCESS_SECTION_{tag}" - code = code.replace(code_to_replace, f"""{start_code}\n\n{include_section}\n\n{params_section}\n\n{process_section}\n\nworkflow{{\n\n{body}\n}}\n\n""") + code = code.replace(code_to_replace, f"""{start_code}\n\n\n{include_section}\n\n\n{params_section}\n\n\n{function_section}\n\n\n{process_section}\n\n\nworkflow{{\n\n{body}\n}}\n\n""") params_list = [] for match in re.finditer(r"params.\w+ *\= *[^\n=]([^\n])*", code): @@ -638,8 +639,21 @@ George Marchment, Bryan Brancotte, Marie Schmit, Frédéric Lemoine, Sarah Cohen code = code.replace(params, "") params_code = "\n".join(params_list) code = code.replace(params_section, params_code) + + + #Moving Functions + functions = [] + for f in self.nextflow_file.functions: + function = f.get_code() + functions.append(function) + + for r in functions: + code = code.replace(r, "") + code = code.replace(function_section, "\n\n".join(functions)) + + #Moving Processes processes = [] to_replace = [] for p in self.nextflow_file.get_processes(): @@ -659,6 +673,7 @@ George Marchment, Bryan Brancotte, Marie Schmit, Frédéric Lemoine, Sarah Cohen else: raise Exception(f"Executor of type '{o.get_type()}' was extracted in a DSL1 workflow! This shoudn't happen! The code is '{o.get_code()}'") #print(code) + return code #print(code) #