From: Gregory P. Smith Date: Wed, 19 Mar 2008 01:46:10 +0000 (+0000) Subject: Use zlib's crc32 routine instead of binascii when available. zlib's is faster X-Git-Tag: v2.6a2~245 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b89a096d6dce43dad60618750ea9c62f770b2e7a;p=python Use zlib's crc32 routine instead of binascii when available. zlib's is faster when compiled properly optimized and about the same speed otherwise. --- diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 9f5669e71b..b601e7471e 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -6,8 +6,10 @@ import binascii, cStringIO try: import zlib # We may need its compression method + crc32 = zlib.crc32 except ImportError: zlib = None + crc32 = binascii.crc32 __all__ = ["BadZipfile", "error", "ZIP_STORED", "ZIP_DEFLATED", "is_zipfile", "ZipInfo", "ZipFile", "PyZipFile", "LargeZipFile" ] @@ -940,7 +942,7 @@ class ZipFile: if not buf: break file_size = file_size + len(buf) - CRC = binascii.crc32(buf, CRC) + CRC = crc32(buf, CRC) if cmpr: buf = cmpr.compress(buf) compress_size = compress_size + len(buf) @@ -983,7 +985,7 @@ class ZipFile: zinfo.header_offset = self.fp.tell() # Start of header bytes self._writecheck(zinfo) self._didModify = True - zinfo.CRC = binascii.crc32(bytes) # CRC-32 checksum + zinfo.CRC = crc32(bytes) # CRC-32 checksum if zinfo.compress_type == ZIP_DEFLATED: co = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, zlib.DEFLATED, -15) @@ -1041,7 +1043,7 @@ class ZipFile: if extra: # Append a ZIP64 field to the extra's extra_data = struct.pack( - '