forked from importers/git-importer
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)
|