@@ -104,17 +104,17 @@ def are_same_type(src, sink): # type: (Any, Any) -> bool
104
104
return src == sink
105
105
106
106
107
- def object_from_state (state , parms , frag_only , supportsMultipleInput ):
107
+ def object_from_state (state , parms , frag_only , supportsMultipleInput , sourceField ):
108
108
# type: (Dict[str,WorkflowStateItem], List[Dict[str, Any]], bool, bool) -> Dict[str, str]
109
109
inputobj = {} # type: Dict[str, str]
110
110
for inp in parms :
111
111
iid = inp ["id" ]
112
112
if frag_only :
113
113
iid = shortname (iid )
114
- if "source" in inp :
115
- if isinstance (inp ["source" ], list ) and not supportsMultipleInput :
114
+ if sourceField in inp :
115
+ if isinstance (inp [sourceField ], list ) and not supportsMultipleInput :
116
116
raise WorkflowException ("Workflow contains multiple inbound links to a single parameter but MultipleInputFeatureRequirement is not declared." )
117
- connections = aslist (inp ["source" ])
117
+ connections = aslist (inp [sourceField ])
118
118
for src in connections :
119
119
if src in state and state [src ] is not None :
120
120
if not match_types (inp ["type" ], state [src ], iid , inputobj ,
@@ -205,7 +205,7 @@ def try_make_job(self, step, **kwargs):
205
205
supportsMultipleInput = bool (self .workflow .get_requirement ("MultipleInputFeatureRequirement" )[0 ])
206
206
207
207
try :
208
- inputobj = object_from_state (self .state , inputparms , False , supportsMultipleInput )
208
+ inputobj = object_from_state (self .state , inputparms , False , supportsMultipleInput , "source" )
209
209
if inputobj is None :
210
210
_logger .debug (u"[%s] job step %s not ready" , self .name , step .id )
211
211
return
@@ -326,7 +326,7 @@ def job(self, joborder, output_callback, move_outputs=True, **kwargs):
326
326
327
327
supportsMultipleInput = bool (self .workflow .get_requirement ("MultipleInputFeatureRequirement" )[0 ])
328
328
329
- wo = object_from_state (self .state , self .tool ["outputs" ], True , supportsMultipleInput )
329
+ wo = object_from_state (self .state , self .tool ["outputs" ], True , supportsMultipleInput , "outputSource" )
330
330
331
331
if wo is None :
332
332
raise WorkflowException ("Output for workflow not available" )
0 commit comments