8
8
import tempfile
9
9
from collections import namedtuple
10
10
from typing import (Any , Callable , Dict , Generator , Iterable , List ,
11
- MutableMapping , MutableSequence , Optional , Tuple , Union )
11
+ Mapping , MutableMapping , MutableSequence , Optional , Tuple , Union )
12
12
from uuid import UUID # pylint: disable=unused-import
13
13
14
14
from ruamel .yaml .comments import CommentedMap
@@ -165,7 +165,7 @@ def object_from_state(state, # Dict[Text, WorkflowStateItem]
165
165
return None
166
166
167
167
if inputobj .get (iid ) is None and "default" in inp :
168
- inputobj [iid ] = copy . deepcopy ( inp ["default" ])
168
+ inputobj [iid ] = inp ["default" ]
169
169
170
170
if iid not in inputobj and ("valueFrom" in inp or incomplete ):
171
171
inputobj [iid ] = None
@@ -189,7 +189,7 @@ def __init__(self, step):
189
189
self .parent_wf = step .parent_wf
190
190
191
191
def job (self ,
192
- joborder , # type: MutableMapping [Text, Text]
192
+ joborder , # type: Mapping [Text, Text]
193
193
output_callback , # type: functools.partial[None]
194
194
runtimeContext # type: RuntimeContext
195
195
):
@@ -415,7 +415,7 @@ def run(self, runtimeContext):
415
415
_logger .info (u"[%s] start" , self .name )
416
416
417
417
def job (self ,
418
- joborder , # type: MutableMapping [Text, Any]
418
+ joborder , # type: Mapping [Text, Any]
419
419
output_callback , # type: Callable[[Any, Any], Any]
420
420
runtimeContext # type: RuntimeContext
421
421
): # type: (...) -> Generator
@@ -434,10 +434,10 @@ def job(self,
434
434
inp_id = shortname (inp ["id" ])
435
435
if inp_id in joborder :
436
436
self .state [inp ["id" ]] = WorkflowStateItem (
437
- inp , copy . deepcopy ( joborder [inp_id ]) , "success" )
437
+ inp , joborder [inp_id ], "success" )
438
438
elif "default" in inp :
439
439
self .state [inp ["id" ]] = WorkflowStateItem (
440
- inp , copy . deepcopy ( inp ["default" ]) , "success" )
440
+ inp , inp ["default" ], "success" )
441
441
else :
442
442
raise WorkflowException (
443
443
u"Input '%s' not in input object and does not have a "
@@ -565,7 +565,7 @@ def make_workflow_step(self,
565
565
return WorkflowStep (toolpath_object , pos , loadingContext , parentworkflowProv )
566
566
567
567
def job (self ,
568
- job_order , # type: MutableMapping [Text, Text]
568
+ job_order , # type: Mapping [Text, Text]
569
569
output_callbacks , # type: Callable[[Any, Any], Any]
570
570
runtimeContext # type: RuntimeContext
571
571
): # type: (...) -> Generator[Any, None, None]
@@ -761,7 +761,7 @@ def receive_output(self, output_callback, jobout, processStatus):
761
761
output_callback (output , processStatus )
762
762
763
763
def job (self ,
764
- job_order , # type: MutableMapping [Text, Text]
764
+ job_order , # type: Mapping [Text, Text]
765
765
output_callbacks , # type: Callable[[Any, Any], Any]
766
766
runtimeContext , # type: RuntimeContext
767
767
): # type: (...) -> Generator[Any, None, None]
@@ -775,15 +775,16 @@ def job(self,
775
775
self .prov_obj .start_process (
776
776
process_name , datetime .datetime .now (),
777
777
self .embedded_tool .provenance_object .workflow_run_uri )
778
+
779
+ step_input = {}
778
780
for inp in self .tool ["inputs" ]:
779
781
field = shortname (inp ["id" ])
780
782
if not inp .get ("not_connected" ):
781
- job_order [field ] = job_order [inp ["id" ]]
782
- del job_order [inp ["id" ]]
783
+ step_input [field ] = job_order [inp ["id" ]]
783
784
784
785
try :
785
786
for tool in self .embedded_tool .job (
786
- job_order ,
787
+ step_input ,
787
788
functools .partial (self .receive_output , output_callbacks ),
788
789
runtimeContext ):
789
790
yield tool
@@ -878,7 +879,7 @@ def dotproduct_scatter(process, # type: WorkflowJobStep
878
879
879
880
steps = []
880
881
for index in range (0 , jobl ):
881
- sjobo = copy .deepcopy (joborder )
882
+ sjobo = copy .copy (joborder )
882
883
for key in scatter_keys :
883
884
sjobo [key ] = joborder [key ][index ]
884
885
@@ -909,7 +910,7 @@ def nested_crossproduct_scatter(process, # type: WorkflowJobStep
909
910
910
911
steps = []
911
912
for index in range (0 , jobl ):
912
- sjob = copy .deepcopy (joborder )
913
+ sjob = copy .copy (joborder )
913
914
sjob [scatter_key ] = joborder [scatter_key ][index ]
914
915
915
916
if len (scatter_keys ) == 1 :
@@ -967,7 +968,7 @@ def _flat_crossproduct_scatter(process, # type: WorkflowJobStep
967
968
steps = []
968
969
put = startindex
969
970
for index in range (0 , jobl ):
970
- sjob = copy .deepcopy (joborder )
971
+ sjob = copy .copy (joborder )
971
972
sjob [scatter_key ] = joborder [scatter_key ][index ]
972
973
973
974
if len (scatter_keys ) == 1 :
0 commit comments