3e1fbaa1c3
The calculation of the sha256 and the mimetype is local due to that
21 lines
391 B
Python
21 lines
391 B
Python
import functools
|
|
import hashlib
|
|
|
|
|
|
def _hash(hash_alg, file_or_path):
|
|
h = hash_alg()
|
|
|
|
def __hash(f):
|
|
while chunk := f.read(1024 * 4):
|
|
h.update(chunk)
|
|
|
|
if hasattr(file_or_path, "read"):
|
|
__hash(file_or_path)
|
|
else:
|
|
with file_or_path.open("rb") as f:
|
|
__hash(f)
|
|
return h.hexdigest()
|
|
|
|
|
|
md5 = functools.partial(_hash, hashlib.md5)
|