[Python-checkins] r61582 - python/trunk/Lib/zipfile.py

gregory.p.smith python-checkins at python.org
Wed Mar 19 02:46:10 CET 2008


Author: gregory.p.smith
Date: Wed Mar 19 02:46:10 2008
New Revision: 61582
Modified:
 python/trunk/Lib/zipfile.py
Log:
Use zlib's crc32 routine instead of binascii when available. zlib's is faster
when compiled properly optimized and about the same speed otherwise.
Modified: python/trunk/Lib/zipfile.py
==============================================================================
--- python/trunk/Lib/zipfile.py	(original)
+++ python/trunk/Lib/zipfile.py	Wed Mar 19 02:46:10 2008
@@ -6,8 +6,10 @@
 
 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 @@
 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 @@
 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 @@
 if extra:
 # Append a ZIP64 field to the extra's
 extra_data = struct.pack(
- '<hh' + 'q'*len(extra),
+ '<HH' + 'Q'*len(extra),
 1, 8*len(extra), *extra) + extra_data
 
 extract_version = max(45, zinfo.extract_version)


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /