@@ -285,15 +285,20 @@ def parse(
285
285
conns = [args ]
286
286
conn_stmts = []
287
287
for conn in conns :
288
- src , tgt , field_conns_str = extract_args (conn )[1 ]
289
- if (
290
- field_conns_str .startswith ("(" )
291
- and len (extract_args (field_conns_str )[1 ]) == 1
292
- ):
293
- field_conns_str = extract_args (field_conns_str )[1 ][0 ]
294
- field_conns = extract_args (field_conns_str )[1 ]
295
- for field_conn in field_conns :
296
- out , in_ = extract_args (field_conn )[1 ]
288
+ if isinstance (conn , str ):
289
+ src , tgt , field_conns_str = extract_args (conn )[1 ]
290
+ if (
291
+ field_conns_str .startswith ("(" )
292
+ and len (extract_args (field_conns_str )[1 ]) == 1
293
+ ):
294
+ field_conns_str = extract_args (field_conns_str )[1 ][0 ]
295
+ field_conns = [
296
+ extract_args (c )[1 ] for c in extract_args (field_conns_str )[1 ]
297
+ ]
298
+ else :
299
+ src , out , tgt , in_ = conn
300
+ field_conns = [ (out , in_ ) ]
301
+ for out , in_ in field_conns :
297
302
pre , args , post = extract_args (out )
298
303
if args is not None :
299
304
varname , callable_str = args
@@ -525,7 +530,7 @@ def parse(
525
530
indent = match .group (1 )
526
531
varname = match .group (2 )
527
532
args = extract_args (statement )[1 ]
528
- node_kwargs = match_kwargs (args , AddInterfaceStatement .SIGNATURE )
533
+ node_kwargs = match_kwargs ([ a . replace ( " \n " , "" ) for a in args ] , AddInterfaceStatement .SIGNATURE )
529
534
intf_name , intf_args , intf_post = extract_args (node_kwargs ["interface" ])
530
535
if "iterables" in node_kwargs :
531
536
iterables = [
@@ -829,7 +834,7 @@ class WorkflowInitStatement:
829
834
workflow_converter : "WorkflowConverter"
830
835
831
836
match_re = re .compile (
832
- r"\s+(\w+)\s*=.*\bWorkflow\(.*name\s*=\s*([^,=\)]+)" ,
837
+ r"\s+(\w+)\s*=.*\bWorkflow\((?:| .*name\s*=) \s*([^,=\)]+)" ,
833
838
flags = re .MULTILINE ,
834
839
)
835
840
@@ -887,6 +892,9 @@ def match_kwargs(args: ty.List[str], sig: ty.List[str]) -> ty.Dict[str, str]:
887
892
kwargs [key ] = val
888
893
else :
889
894
if found_kw :
895
+ if arg .startswith ("#" ):
896
+ # Ignore comments
897
+ continue
890
898
raise ValueError (
891
899
f"Non-keyword arg '{ arg } ' found after keyword arg in { args } "
892
900
)
0 commit comments