From 288d2cdef4d8e74afbeab90ae30ce65a775d93ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Tue, 8 Feb 2022 23:33:52 +0100 Subject: [PATCH] extend hashing method --- PyTeX/build/build/hashing.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/PyTeX/build/build/hashing.py b/PyTeX/build/build/hashing.py index 91bf258..d62f08b 100644 --- a/PyTeX/build/build/hashing.py +++ b/PyTeX/build/build/hashing.py @@ -1,12 +1,22 @@ import hashlib +from typing import Union, List, Set from pathlib import Path # https://stackoverflow.com/a/3431838/16371376 -def md5(file: Path): +def md5(data: Union[Path, List[str], Set[str]]): hash_md5 = hashlib.md5() - with open(file, "rb") as f: - for block in iter(lambda: f.read(4096), b""): - hash_md5.update(block) - return hash_md5.hexdigest() + if isinstance(data, Path): + file: Path = data + with open(file, "rb") as f: + for block in iter(lambda: f.read(4096), b""): + hash_md5.update(block) + else: + if isinstance(data, list): + set_data: Set[str] = set(data) + else: + set_data = data + hash_md5.update(str(set_data).encode('UTF-8')) + return hash_md5.hexdigest() +