drop support for Python 2.x
[~helmut/debian-dedup.git] / dedup / compression.py
index 8d1912b..161eda2 100644 (file)
@@ -1,13 +1,10 @@
 import bz2
 import struct
-import sys
 import zlib
 
 import lzma
 
-crc32_type = "L" if sys.version_info.major >= 3 else "l"
-
-class GzipDecompressor(object):
+class GzipDecompressor:
     """An interface to gzip which is similar to bz2.BZ2Decompressor and
     lzma.LZMADecompressor."""
     def __init__(self):
@@ -66,7 +63,7 @@ class GzipDecompressor(object):
         elif not self.sawheader:
             return self.inbuffer
         else:
-            expect = struct.pack("<" + crc32_type + "L", self.crc, self.size)
+            expect = struct.pack("<LL", self.crc, self.size)
             if self.inbuffer.startswith(expect) and \
                     self.inbuffer[len(expect):].replace(b"\0", b"") == b"":
                 return b""
@@ -90,7 +87,7 @@ class GzipDecompressor(object):
         new.size = self.size
         return new
 
-class DecompressedStream(object):
+class DecompressedStream:
     """Turn a readable file-like into a decompressed file-like. It supports
     read(optional length), tell, seek(forward only) and close."""
     blocksize = 65536
@@ -173,10 +170,10 @@ class DecompressedStream(object):
             self.closed = True
 
 decompressors = {
-    u'.gz':   GzipDecompressor,
-    u'.bz2':  bz2.BZ2Decompressor,
-    u'.lzma': lzma.LZMADecompressor,
-    u'.xz':   lzma.LZMADecompressor,
+    '.gz':   GzipDecompressor,
+    '.bz2':  bz2.BZ2Decompressor,
+    '.lzma': lzma.LZMADecompressor,
+    '.xz':   lzma.LZMADecompressor,
 }
 
 def decompress(filelike, extension):