Skip to content

Commit a3c4c31

Browse files
authored
Allow mutation manager to be optional. (#377)
1 parent a91c16c commit a3c4c31

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

cwltool/draft2tool.py

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)