class_docstr: A cache for output files that uses a provenance hash value that
  describes all steps, parameters, and software needed to generate
  each output file.
class_docstr_tok: ["A","cache","for","output","files","that","uses","a","provenance","hash","value","that","describes","all","steps",",","parameters",",","and","software","needed","to","generate","each","output","file","."]
code: def set_permissions(self, entry):
      # make readable/writeable for all
      if entry.is_dir():
          # recursively apply permissions for all contained files
          for root, dirs, files in os.walk(entry):
              root = Path(root)
              for d in dirs:
                  os.chmod(root / d, self.dir_permissions)
              for f in files:
                  os.chmod(root / f, self.file_permissions)
          os.chmod(entry, self.dir_permissions)
      else:
          os.chmod(entry, self.file_permissions)
  
file_path: snakemake/snakemake/caching/local.py
imports: from tempfile import TemporaryDirectory
  from pathlib import Path
  import os
  import shutil
  import stat
  from snakemake.logging import logger
  from snakemake.jobs import Job
  from snakemake.exceptions import WorkflowError
  from snakemake.caching import AbstractOutputFileCache
label_desc: Use image node_id 6 for calling the OutputFileCache obj's underlying member method code with example usage: obj.set_permissions(entry) without return types