Better error message from local unzip when name not in zip file

This commit is contained in:
Kovid Goyal 2020-02-08 07:10:12 +05:30
parent 8832ee100f
commit 0fef4ecd55
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -264,14 +264,16 @@ class LocalZipFile(object):
_extractall(stream, file_info=self.file_info)
self.stream = stream
def _get_file_info(self, name):
fi = self.file_info.get(name)
if fi is None:
raise ValueError('This ZIP container has no file named: %s'%name)
return fi
def open(self, name, spool_size=5*1024*1024):
if isinstance(name, LocalHeader):
name = name.filename
try:
offset, header = self.file_info.get(name)
except KeyError:
raise ValueError('This ZIP container has no file named: %s'%name)
offset, header = self._get_file_info(name)
self.stream.seek(offset)
dest = SpooledTemporaryFile(max_size=spool_size)
@ -283,10 +285,7 @@ class LocalZipFile(object):
return dest
def getinfo(self, name):
try:
offset, header = self.file_info.get(name)
except KeyError:
raise ValueError('This ZIP container has no file named: %s'%name)
offset, header = self._get_file_info(name)
return header
def read(self, name, spool_size=5*1024*1024):