Let hash_class be mandatory argument, return actual hasher object.
This commit is contained in:
parent
b41597ec71
commit
9070c5df82
1 changed files with 7 additions and 5 deletions
|
@ -382,8 +382,9 @@ def copy_file(
|
||||||
Do everything except the actual file copying.
|
Do everything except the actual file copying.
|
||||||
|
|
||||||
hash_class:
|
hash_class:
|
||||||
If provided, should be a hashlib class. The hash will be computed while
|
If provided, should be a hashlib class or a callable that returns an
|
||||||
the file is being copied, and returned in the dotdict as `hash`.
|
instance of one. The hash will be computed while the file is being
|
||||||
|
copied, and returned in the dotdict as `hash`.
|
||||||
Note that if the function returns early due to dry_run or file not
|
Note that if the function returns early due to dry_run or file not
|
||||||
needing overwrite, this won't be set, so be prepared to handle None.
|
needing overwrite, this won't be set, so be prepared to handle None.
|
||||||
If None, the hash will not be calculated.
|
If None, the hash will not be calculated.
|
||||||
|
@ -553,7 +554,7 @@ def get_dir_size(path):
|
||||||
|
|
||||||
def hash_file(
|
def hash_file(
|
||||||
path,
|
path,
|
||||||
hash_class=HASH_CLASS,
|
hash_class,
|
||||||
*,
|
*,
|
||||||
callback_progress=None,
|
callback_progress=None,
|
||||||
chunk_size=CHUNK_SIZE,
|
chunk_size=CHUNK_SIZE,
|
||||||
|
@ -580,7 +581,7 @@ def hash_file(
|
||||||
checked_bytes += len(chunk)
|
checked_bytes += len(chunk)
|
||||||
callback_progress(path, checked_bytes, file_size)
|
callback_progress(path, checked_bytes, file_size)
|
||||||
|
|
||||||
return hasher.hexdigest()
|
return hasher
|
||||||
|
|
||||||
def is_xor(*args):
|
def is_xor(*args):
|
||||||
'''
|
'''
|
||||||
|
@ -628,6 +629,7 @@ def normalize(text):
|
||||||
|
|
||||||
def verify_hash(
|
def verify_hash(
|
||||||
path,
|
path,
|
||||||
|
hash_class,
|
||||||
known_hash,
|
known_hash,
|
||||||
*,
|
*,
|
||||||
known_size=None,
|
known_size=None,
|
||||||
|
@ -641,7 +643,7 @@ def verify_hash(
|
||||||
if file_size != known_size:
|
if file_size != known_size:
|
||||||
raise ValidationError(f'File size {file_size} != known size {known_size}.')
|
raise ValidationError(f'File size {file_size} != known size {known_size}.')
|
||||||
|
|
||||||
file_hash = hash_file(path, **hash_kwargs)
|
file_hash = hash_file(path, hash_class=hash_class, **hash_kwargs).hexdigest()
|
||||||
if file_hash != known_hash:
|
if file_hash != known_hash:
|
||||||
raise ValidationError(f'File hash "{file_hash}" != known hash "{known_hash}".')
|
raise ValidationError(f'File hash "{file_hash}" != known hash "{known_hash}".')
|
||||||
log.debug('Hash validation passed.')
|
log.debug('Hash validation passed.')
|
||||||
|
|
Loading…
Reference in a new issue