@@ -216,8 +216,10 @@ def get_inputs_from_main_nf(self) -> None:
216216 elif match .group (4 ):
217217 input_val = match .group (4 ).split ("," )[0 ] # handle `files, stageAs: "inputs/*"` cases
218218 if input_val :
219- input_val = re .sub (r"\s*\,\s*arity\s*\:\s*\w+\s*" , "" , input_val ).strip () # remove arity
220- input_val = input_val .strip ("'" ).strip ('"' ) # remove quotes
219+ input_val = re .split (r',(?=(?:[^\'"]*[\'"][^\'"]*[\'"])*[^\'"]*$)' , input_val )[
220+ 0
221+ ] # Takes only first part, avoid commas in quotes
222+ input_val = input_val .strip ().strip ("'" ).strip ('"' ) # remove quotes and whitespaces
221223 channel_elements .append ({input_val : {}})
222224 if len (channel_elements ) > 0 :
223225 inputs .append (channel_elements )
@@ -263,8 +265,10 @@ def get_outputs_from_main_nf(self):
263265 elif match_element .group (4 ):
264266 output_val = match_element .group (4 )
265267 if output_val :
266- output_val = re .sub (r"\s*\,\s*arity\s*\:\s*\w+\s*" , "" , output_val ).strip () # remove arity
267- output_val = output_val .strip ("'" ).strip ('"' ) # remove quotes
268+ output_val = re .split (r',(?=(?:[^\'"]*[\'"][^\'"]*[\'"])*[^\'"]*$)' , output_val )[
269+ 0
270+ ] # Takes only first part, avoid commas in quotes
271+ output_val = output_val .strip ().strip ("'" ).strip ('"' ) # remove quotes and whitespaces
268272 output_channel [match_emit .group (1 )].append ({output_val : {}})
269273 outputs .append (output_channel )
270274 log .debug (f"Found { len (outputs )} outputs in { self .main_nf } " )
0 commit comments