From 6b87bc371b91917980884d6dd20e39d3cda47fc7 Mon Sep 17 00:00:00 2001
From: Helmut Grohne <helmut@subdivi.de>
Date: Wed, 29 Dec 2021 15:36:12 +0100
Subject: DecompressedHash: also gain a name property for consistency

---
 dedup/hashing.py | 7 +++++--
 importpkg.py     | 4 ++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/dedup/hashing.py b/dedup/hashing.py
index 27f303c..9cebcbb 100644
--- a/dedup/hashing.py
+++ b/dedup/hashing.py
@@ -84,7 +84,7 @@ class HashBlacklistContent:
 class DecompressedHash:
     """Apply a decompression function before the hash. This class provides the
     hashlib interface (update, hexdigest, copy) excluding digest and name."""
-    def __init__(self, decompressor, hashobj):
+    def __init__(self, decompressor, hashobj, name="unnamed"):
         """
         @param decompressor: a decompression object like bz2.BZ2Decompressor or
             lzma.LZMADecompressor. It has to provide methods decompress and
@@ -92,9 +92,11 @@ class DecompressedHash:
             method.
         @param hashobj: a hashlib-like obj providing methods update, hexdigest
             and copy
+        @param name: initialized the name property
         """
         self.decompressor = decompressor
         self.hashobj = hashobj
+        self.name = name
 
     def update(self, data):
         self.hashobj.update(self.decompressor.decompress(data))
@@ -113,7 +115,8 @@ class DecompressedHash:
         return tmphash.hexdigest()
 
     def copy(self):
-        return DecompressedHash(self.decompressor.copy(), self.hashobj.copy())
+        return DecompressedHash(self.decompressor.copy(), self.hashobj.copy(),
+                                self.name)
 
 class SuppressingHash:
     """A hash that silences exceptions from the update and hexdigest methods of
diff --git a/importpkg.py b/importpkg.py
index 6988c1d..6772c4d 100755
--- a/importpkg.py
+++ b/importpkg.py
@@ -25,9 +25,9 @@ def sha512_nontrivial():
     return HashBlacklistContent(hashlib.sha512(), boring_content)
 
 def gziphash():
-    hashobj = DecompressedHash(GzipDecompressor(), hashlib.sha512())
+    hashobj = hashlib.sha512()
+    hashobj = DecompressedHash(GzipDecompressor(), hashobj, "gzip_sha512")
     hashobj = SuppressingHash(hashobj, (ValueError, zlib.error))
-    hashobj.name = "gzip_sha512"
     return HashBlacklistContent(hashobj, boring_content)
 
 def pnghash():
-- 
cgit v1.2.3