1
- from pydra .compose import python # , workflow, shell
1
+ from pydra .compose import python , workflow , shell
2
+ from fileformats .generic import File
2
3
from pydra .utils .general import task_def_as_dict , task_def_from_dict , task_fields
4
+ from pydra .utils .tests .utils import SpecificFuncTask , Concatenate
3
5
4
6
5
7
def test_python_task_def_as_dict ():
@@ -26,3 +28,31 @@ def Add(a: int, b: int | None = None, c: int | None = None) -> int:
26
28
dct = task_def_as_dict (Add )
27
29
Reloaded = task_def_from_dict (dct )
28
30
assert task_fields (Add ) == task_fields (Reloaded )
31
+
32
+
33
+ def test_shell_task_def_as_dict ():
34
+
35
+ MyCmd = shell .define (
36
+ "my-cmd <in_file> <out|out_file> --an-arg <an_arg:int=2> --a-flag<a_flag>"
37
+ )
38
+
39
+ dct = task_def_as_dict (MyCmd )
40
+ Reloaded = task_def_from_dict (dct )
41
+ assert task_fields (MyCmd ) == task_fields (Reloaded )
42
+
43
+
44
+ def test_workflow_task_def_as_dict ():
45
+
46
+ @workflow .define
47
+ def AWorkflow (in_file : File , a_param : int ) -> tuple [File , File ]:
48
+ spec_func = workflow .add (SpecificFuncTask (in_file ))
49
+ concatenate = workflow .add (
50
+ Concatenate (
51
+ in_file1 = in_file , in_file2 = spec_func .out_file , duplicates = a_param
52
+ )
53
+ )
54
+ return concatenate .out_file
55
+
56
+ dct = task_def_as_dict (AWorkflow )
57
+ Reloaded = task_def_from_dict (dct )
58
+ assert task_fields (AWorkflow ) == task_fields (Reloaded )
0 commit comments