code: def get_provenance_hash(self, job: Job, cache_mode: str):
      versioned_hash = hashlib.sha256()
      # Ensure that semantic version changes in this module
      versioned_hash.update(
          self._get_provenance_hash(job, cache_mode).encode()
      )
      versioned_hash.update(__version__.encode())
      return versioned_hash.hexdigest()
  
file_path: snakemake/snakemake/caching/hash.py
imports: import hashlib
  import json
  from snakemake.jobs import Job
  from snakemake import script
  from snakemake import wrapper
  from snakemake.exceptions import WorkflowError
  from snakemake.settings import DeploymentMethod
label_desc: Use image node_id 2 for calling the ProvenanceHashMap obj's underlying member method code with example usage: obj.get_provenance_hash(job, cache_mode) and returns: versioned_hash