Since workflows and tasks can be used interchangeably in Pydra it seems an oversight not to be able to type workflow inputs/outputs. Also, it would enable us to type the LazyField objects from Workflow.lzin and perform type checking on the inputs of workflows, e.g.
wf = Workflow(name="wf", input_spec=["cmd", "file"])
wf.inputs.cmd = cmd
wf.inputs.file = filename
docky = DockerTask(
name="docky",
image="busybox",
executable=wf.lzin.cmd, # this can't be type-checked currently
file=wf.lzin.file, # nor this
input_spec=my_input_spec,
strip=True,
)
wf.add(docky)
What would be the benefit? Does the change make something easier to use?
It would help round of dynamic type-checking at construction time, thereby catching
more errors before costly workflow runs
I would like the option/requirement to declare and type the inputs and outputs of workflows e.g.
Since workflows and tasks can be used interchangeably in Pydra it seems an oversight not to be able to type workflow inputs/outputs. Also, it would enable us to type the LazyField objects from Workflow.lzin and perform type checking on the inputs of workflows, e.g.
It would help round of dynamic type-checking at construction time, thereby catching more errors before costly workflow runs