@@ -224,7 +224,8 @@ def valueFromFunc(k, v):
224
224
if "valueFrom" not in kwargs :
225
225
kwargs ["valueFrom" ] = valueFromFunc
226
226
if method == "dotproduct" or method is None :
227
- jobs = dotproduct_scatter (step , inputobj , basedir , scatter ,
227
+ non_scatter = [v for v in valueFrom if v not in scatter ]
228
+ jobs = dotproduct_scatter (step , inputobj , basedir , scatter , non_scatter ,
228
229
callback , ** kwargs )
229
230
elif method == "nested_crossproduct" :
230
231
jobs = nested_crossproduct_scatter (step , inputobj ,
@@ -506,7 +507,7 @@ def setTotal(self, total):
506
507
self .output_callback (self .dest , self .processStatus )
507
508
508
509
509
- def dotproduct_scatter (process , joborder , basedir , scatter_keys , output_callback , ** kwargs ):
510
+ def dotproduct_scatter (process , joborder , basedir , scatter_keys , non_scatter_keys , output_callback , ** kwargs ):
510
511
l = None
511
512
for s in scatter_keys :
512
513
if l is None :
@@ -525,6 +526,9 @@ def dotproduct_scatter(process, joborder, basedir, scatter_keys, output_callback
525
526
for s in scatter_keys :
526
527
jo [s ] = kwargs ["valueFrom" ](s , joborder [s ][n ])
527
528
529
+ for s in non_scatter_keys :
530
+ jo [s ] = kwargs ["valueFrom" ](s , joborder [s ])
531
+
528
532
for j in process .job (jo , basedir , functools .partial (rc .receive_scatter_output , n ), ** kwargs ):
529
533
yield j
530
534
0 commit comments