@@ -35,8 +35,8 @@ class Workflow(Serializable):
35
35
F3B2
Documentation: https://www.commonwl.org/v1.0/Workflow.html#Workflow
36
36
"""
37
37
__CLASS__ = 'Workflow'
38
- ignore_fields_on_parse = ["class" ]
39
- ignore_fields_on_convert = ["inputs" , "outputs" ]
38
+ ignore_fields_on_parse = ["class" , "requirements" ]
39
+ ignore_fields_on_convert = ["inputs" , "outputs" , "requirements" ]
40
40
parse_types = {
41
41
"inputs" : [[InputParameter ]],
42
42
"outputs" : [[WorkflowOutputParameter ]],
@@ -71,9 +71,6 @@ def get_dict(self):
71
71
72
72
cwl_workflow ['class' ] = self .__CLASS__
73
73
74
- cwl_workflow ['inputs' ] = {}
75
- cwl_workflow ['outputs' ] = {}
76
-
77
74
# steps, inputs, outputs are required properties, so it should fail if we can't place it
78
75
cwl_workflow ['steps' ] = {step .id : step .get_dict () for step in self .steps }
79
76
cwl_workflow ['inputs' ] = {i .id : i .get_dict () for i in self .inputs }
@@ -93,7 +90,11 @@ def parse_dict(cls, d):
93
90
if isinstance (reqs , list ):
94
91
wf .requirements = [Requirement .parse_dict (r ) for r in reqs ]
95
92
elif isinstance (reqs , dict ):
96
- wf .requirements = [Requirement .parse_dict ({** r , "class" : c }) for c , r in reqs .items ()]
93
+ # splat operator here would be so nice {**r, "class": c}
94
+ for c , r in reqs .items ():
95
+ rdict = {'class' : c }
96
+ rdict .update (r )
97
+ wf .requirements .append (Requirement .parse_dict (rdict ))
97
98
98
99
return wf
99
100
0 commit comments