diff --git a/swh/model/hashutil.py b/swh/model/hashutil.py index df73142ac68dd10253fccceea70fb84bbb8fc484..0e789834a4e18eba2b0be6040ac4d74a9294cadf 100644 --- a/swh/model/hashutil.py +++ b/swh/model/hashutil.py @@ -95,11 +95,12 @@ class MultiHash: track_length=True): if not length: length = os.path.getsize(path) + with open(path, 'rb') as f: + ret = cls.from_file(f, hash_names=hash_names, length=length) # For compatibility reason with `hash_path` if track_length: - hash_names = hash_names.union(EXTRA_LENGTH) - with open(path, 'rb') as f: - return cls.from_file(f, hash_names=hash_names, length=length) + ret.state['length'] = length + return ret @classmethod def from_data(cls, data, hash_names=DEFAULT_ALGORITHMS, length=None):