Skip to content

Commit 57d3520

Browse files
Remove fancy error messages for zlib import errors
Co-authored-by: Gregory P. Smith <[email protected]>
1 parent 89d2d5f commit 57d3520

File tree

4 files changed

+14
-43
lines changed

4 files changed

+14
-43
lines changed

Lib/shutil.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,6 @@
1111
import collections
1212
import errno
1313

14-
try:
15-
import zlib
16-
del zlib
17-
_ZLIB_SUPPORTED = True
18-
except ImportError:
19-
_ZLIB_SUPPORTED = False
2014

2115
try:
2216
import bz2
@@ -1000,7 +994,7 @@ def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0,
1000994
"""
1001995
if compress is None:
1002996
tar_compression = ''
1003-
elif _ZLIB_SUPPORTED and compress == 'gzip':
997+
elif compress == 'gzip':
1004998
tar_compression = 'gz'
1005999
elif _BZ2_SUPPORTED and compress == 'bzip2':
10061000
tar_compression = 'bz2'
@@ -1121,10 +1115,9 @@ def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0,
11211115
"uncompressed tar file"),
11221116
}
11231117

1124-
if _ZLIB_SUPPORTED:
1125-
_ARCHIVE_FORMATS['gztar'] = (_make_tarball, [('compress', 'gzip')],
1126-
"gzip'ed tar-file")
1127-
_ARCHIVE_FORMATS['zip'] = (_make_zipfile, [], "ZIP file")
1118+
_ARCHIVE_FORMATS['gztar'] = (_make_tarball, [('compress', 'gzip')],
1119+
"gzip'ed tar-file")
1120+
_ARCHIVE_FORMATS['zip'] = (_make_zipfile, [], "ZIP file")
11281121

11291122
if _BZ2_SUPPORTED:
11301123
_ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')],
@@ -1345,12 +1338,9 @@ def _unpack_tarfile(filename, extract_dir, *, filter=None):
13451338
_UNPACK_FORMATS = {
13461339
'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"),
13471340
'zip': (['.zip'], _unpack_zipfile, [], "ZIP file"),
1341+
'gztar': (['.tar.gz', '.tgz'], _unpack_tarfile, [], "gzip'ed tar-file"),
13481342
}
13491343

1350-
if _ZLIB_SUPPORTED:
1351-
_UNPACK_FORMATS['gztar'] = (['.tar.gz', '.tgz'], _unpack_tarfile, [],
1352-
"gzip'ed tar-file")
1353-
13541344
if _BZ2_SUPPORTED:
13551345
_UNPACK_FORMATS['bztar'] = (['.tar.bz2', '.tbz2'], _unpack_tarfile, [],
13561346
"bzip2'ed tar-file")

Lib/tarfile.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,7 @@ def __init__(self, name, mode, comptype, fileobj, bufsize,
364364

365365
try:
366366
if comptype == "gz":
367-
try:
368-
import zlib
369-
except ImportError:
370-
raise CompressionError("zlib module is not available") from None
367+
import zlib
371368
self.zlib = zlib
372369
self.crc = zlib.crc32(b"")
373370
if mode == "r":
@@ -2697,13 +2694,10 @@ def next(self):
26972694
except SubsequentHeaderError as e:
26982695
raise ReadError(str(e)) from None
26992696
except Exception as e:
2700-
try:
2701-
import zlib
2702-
if isinstance(e, zlib.error):
2703-
raise ReadError(f'zlib error: {e}') from None
2704-
else:
2705-
raise e
2706-
except ImportError:
2697+
import zlib
2698+
if isinstance(e, zlib.error):
2699+
raise ReadError(f'zlib error: {e}') from None
2700+
else:
27072701
raise e
27082702
break
27092703

Lib/zipfile/__init__.py

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414
import threading
1515
import time
1616

17-
try:
18-
import zlib # We may need its compression method
19-
crc32 = zlib.crc32
20-
except ImportError:
21-
zlib = None
22-
crc32 = binascii.crc32
17+
import zlib
18+
crc32 = zlib.crc32
2319

2420
try:
2521
import bz2 # We may need its compression method
@@ -771,12 +767,8 @@ def decompress(self, data):
771767
}
772768

773769
def _check_compression(compression):
774-
if compression == ZIP_STORED:
770+
if compression in (ZIP_STORED, ZIP_DEFLATED):
775771
pass
776-
elif compression == ZIP_DEFLATED:
777-
if not zlib:
778-
raise RuntimeError(
779-
"Compression requires the (missing) zlib module")
780772
elif compression == ZIP_BZIP2:
781773
if not bz2:
782774
raise RuntimeError(

Lib/zipimport.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -604,9 +604,7 @@ def _read_directory(archive):
604604

605605
_importing_zlib = False
606606

607-
# Return the zlib.decompress function object, or NULL if zlib couldn't
608-
# be imported. The function is cached when found, so subsequent calls
609-
# don't import zlib again.
607+
# Return the zlib.decompress function object or raise an import error.
610608
def _get_decompress_func():
611609
global _importing_zlib
612610
if _importing_zlib:
@@ -618,9 +616,6 @@ def _get_decompress_func():
618616
_importing_zlib = True
619617
try:
620618
from zlib import decompress
621-
except Exception:
622-
_bootstrap._verbose_message('zipimport: zlib UNAVAILABLE')
623-
raise ZipImportError("can't decompress data; zlib not available")
624619
finally:
625620
_importing_zlib = False
626621

0 commit comments

Comments
 (0)