@@ -381,28 +381,29 @@ def rm_pending_output_callback(output_callbacks, jobcachepending,
381381 readers = {}
382382 muts = set ()
383383
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 )
401402
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 )
406407
407408 j .environment = {}
408409 evr = self .get_requirement ("EnvVarRequirement" )[0 ]
@@ -464,7 +465,8 @@ def collect_output_ports(self, ports, builder, outdir, compute_checksum=True, jo
464465 visit_class (ret , ("File" , "Directory" ), cast (Callable [[Any ], Any ], revmap ))
465466 visit_class (ret , ("File" , "Directory" ), remove_path )
466467 normalizeFilesDirs (ret )
467- adjustFileObjs (ret , builder .mutation_manager .set_generation )
468+ if builder .mutation_manager :
469+ adjustFileObjs (ret , builder .mutation_manager .set_generation )
468470 visit_class (ret , ("File" , "Directory" ), partial (check_valid_locations , fs_access ))
469471
470472 if compute_checksum :
@@ -476,7 +478,7 @@ def collect_output_ports(self, ports, builder, outdir, compute_checksum=True, jo
476478 except validate .ValidationException as e :
477479 raise WorkflowException ("Error validating output record. " + Text (e ) + "\n in " + json .dumps (ret , indent = 4 ))
478480 finally :
479- if readers :
481+ if builder . mutation_manager and readers :
480482 for r in readers .values ():
481483 builder .mutation_manager .release_reader (jobname , r )
482484
0 commit comments