@@ -285,15 +285,20 @@ def parse(
285285 conns = [args ]
286286 conn_stmts = []
287287 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 :
297302 pre , args , post = extract_args (out )
298303 if args is not None :
299304 varname , callable_str = args
@@ -525,7 +530,7 @@ def parse(
525530 indent = match .group (1 )
526531 varname = match .group (2 )
527532 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 )
529534 intf_name , intf_args , intf_post = extract_args (node_kwargs ["interface" ])
530535 if "iterables" in node_kwargs :
531536 iterables = [
@@ -829,7 +834,7 @@ class WorkflowInitStatement:
829834 workflow_converter : "WorkflowConverter"
830835
831836 match_re = re .compile (
832- r"\s+(\w+)\s*=.*\bWorkflow\(.*name\s*=\s*([^,=\)]+)" ,
837+ r"\s+(\w+)\s*=.*\bWorkflow\((?:| .*name\s*=) \s*([^,=\)]+)" ,
833838 flags = re .MULTILINE ,
834839 )
835840
@@ -887,6 +892,9 @@ def match_kwargs(args: ty.List[str], sig: ty.List[str]) -> ty.Dict[str, str]:
887892 kwargs [key ] = val
888893 else :
889894 if found_kw :
895+ if arg .startswith ("#" ):
896+ # Ignore comments
897+ continue
890898 raise ValueError (
891899 f"Non-keyword arg '{ arg } ' found after keyword arg in { args } "
892900 )
0 commit comments