@@ -381,28 +381,29 @@ def rm_pending_output_callback(output_callbacks, jobcachepending,
381
381
readers = {}
382
382
muts = set ()
383
383
384
- def register_mut (f ):
385
- muts .add (f ["location" ])
386
- builder .mutation_manager .register_mutation (j .name , f )
387
-
388
- def register_reader (f ):
389
- if f ["location" ] not in muts :
390
- builder .mutation_manager .register_reader (j .name , f )
391
- readers [f ["location" ]] = f
392
-
393
- for li in j .generatefiles ["listing" ]:
394
- li = cast (Dict [Text , Any ], li )
395
- if li .get ("writable" ) and j .inplace_update :
396
- adjustFileObjs (li , register_mut )
397
- adjustDirObjs (li , register_mut )
398
- else :
399
- adjustFileObjs (li , register_reader )
400
- adjustDirObjs (li , register_reader )
384
+ if builder .mutation_manager :
385
+ def register_mut (f ):
386
+ muts .add (f ["location" ])
387
+ builder .mutation_manager .register_mutation (j .name , f )
388
+
389
+ def register_reader (f ):
390
+ if f ["location" ] not in muts :
391
+ builder .mutation_manager .register_reader (j .name , f )
392
+ readers [f ["location" ]] = f
393
+
394
+ for li in j .generatefiles ["listing" ]:
395
+ li = cast (Dict [Text , Any ], li )
396
+ if li .get ("writable" ) and j .inplace_update :
397
+ adjustFileObjs (li , register_mut )
398
+ adjustDirObjs (li , register_mut )
399
+ else :
400
+ adjustFileObjs (li , register_reader )
401
+ adjustDirObjs (li , register_reader )
401
402
402
- adjustFileObjs (builder .files , register_reader )
403
- adjustFileObjs (builder .bindings , register_reader )
404
- adjustDirObjs (builder .files , register_reader )
405
- adjustDirObjs (builder .bindings , register_reader )
403
+ adjustFileObjs (builder .files , register_reader )
404
+ adjustFileObjs (builder .bindings , register_reader )
405
+ adjustDirObjs (builder .files , register_reader )
406
+ adjustDirObjs (builder .bindings , register_reader )
406
407
407
408
j .environment = {}
408
409
evr = self .get_requirement ("EnvVarRequirement" )[0 ]
@@ -464,7 +465,8 @@ def collect_output_ports(self, ports, builder, outdir, compute_checksum=True, jo
464
465
visit_class (ret , ("File" , "Directory" ), cast (Callable [[Any ], Any ], revmap ))
465
466
visit_class (ret , ("File" , "Directory" ), remove_path )
466
467
normalizeFilesDirs (ret )
467
- adjustFileObjs (ret , builder .mutation_manager .set_generation )
468
+ if builder .mutation_manager :
469
+ adjustFileObjs (ret , builder .mutation_manager .set_generation )
468
470
visit_class (ret , ("File" , "Directory" ), partial (check_valid_locations , fs_access ))
469
471
470
472
if compute_checksum :
@@ -476,7 +478,7 @@ def collect_output_ports(self, ports, builder, outdir, compute_checksum=True, jo
476
478
except validate .ValidationException as e :
477
479
raise WorkflowException ("Error validating output record. " + Text (e ) + "\n in " + json .dumps (ret , indent = 4 ))
478
480
finally :
479
- if readers :
481
+ if builder . mutation_manager and readers :
480
482
for r in readers .values ():
481
483
builder .mutation_manager .release_reader (jobname , r )
482
484
0 commit comments