akkudoktoreos.core.version.hash_tree

akkudoktoreos.core.version.hash_tree(paths: list[Path], allowed_suffixes: set[str], excluded_dir_patterns: set[str], excluded_files: set[Path] | None = None) tuple[str, list[Path]]

Return SHA256 hash for files under paths and the list of files hashed.

Parameters:
  • paths – list of root paths to hash

  • allowed_suffixes – set of file suffixes to include (e.g., {‘.py’, ‘.json’})

  • excluded_dir_patterns – set of directory patterns to exclude

  • excluded_files – Optional set of specific files to exclude

Returns:

tuple of (hash_digest, list_of_hashed_files)

Example

>>> hash_digest, files = hash_tree(
...     paths=[Path('src')],
...     allowed_suffixes={'.py'},
...     excluded_dir_patterns={'*__pycache__'},
... )
>>> print(f"Hash: {hash_digest}")
>>> print(f"Based on {len(files)} files")