curldl.util.fs module#
Filesystem utilities for internal use
- class curldl.util.fs.FileSystem[source]#
Bases:
object
Filesystem utilities, include cryptographic digest verification wrappers
- static verify_rel_path_is_safe(basedir: str | PathLike[str], rel_path: str | PathLike[str]) None [source]#
Verify that a relative path does not escape base directory and either does not exist or is a file or a symlink to one.
- classmethod create_directory_for_path(path: str | PathLike[str]) None [source]#
Create all path components for path, except for last.
- classmethod verify_size_and_digests(path: str | PathLike[str], *, size: int | None = None, digests: dict[str, str] | None = None) None [source]#
Verify file size and digests and raise
ValueError
in case of mismatch.digests
is a dict of hash algorithms and digests to check (seecurldl.util.crypt.Cryptography.verify_digest()
).- Parameters:
- Raises:
ValueError – not a file or file size mismatch or one of digests fails verification
- classmethod verify_size(path: str | PathLike[str], size: int) None [source]#
Verify file size and raise
ValueError
in case of mismatch or if not a file.- Parameters:
- Raises:
ValueError – not a file or file size mismatch
- static get_file_size(path: str | PathLike[str], default: int = 0) int [source]#
Returns file size, or
default
if it does not exist or is not a file.