Skip to content

Commit f0b03f2

Browse files
committed
debugging mriqc and qsmxt conversions
1 parent c4eae3b commit f0b03f2

File tree

3 files changed

+24
-13
lines changed

3 files changed

+24
-13
lines changed

example-specs/pkg-gen/qsmxt.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,5 @@ qsmxt:
4545
- qsmxt.workflows.qsm.get_matching_files
4646
- qsmxt.workflows.qsm.init_qsm_workflow
4747
- qsmxt.workflows.qsm.qsm_workflow
48-
- qsmxt.workflows.template.init_template_workflow
48+
- qsmxt.workflows.template.init_template_workflow
49+
- qsmxt.scripts.antsBuildTemplate.ANTSTemplateBuildSingleIterationWF

nipype2pydra/interface/base.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -735,7 +735,9 @@ def pydra_type_converter(self, field, spec_type, name):
735735
pydra_type = MultiOutputObj
736736
elif isinstance(trait_tp, (traits.trait_types.List, traits.trait_types.Tuple)):
737737
seq_type = list if isinstance(trait_tp, traits.trait_types.List) else tuple
738-
if isinstance(field.inner_traits[0].trait_type, traits_extension.File):
738+
if not field.inner_traits:
739+
pydra_type = seq_type[ty.Any]
740+
elif isinstance(field.inner_traits[0].trait_type, traits_extension.File):
739741
if spec_type == "input":
740742
pydra_type = seq_type[File]
741743
else:

nipype2pydra/statements/workflow_build.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)