mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Better error message from local unzip when name not in zip file
This commit is contained in:
parent
8832ee100f
commit
0fef4ecd55
@ -264,14 +264,16 @@ class LocalZipFile(object):
|
|||||||
_extractall(stream, file_info=self.file_info)
|
_extractall(stream, file_info=self.file_info)
|
||||||
self.stream = stream
|
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):
|
def open(self, name, spool_size=5*1024*1024):
|
||||||
if isinstance(name, LocalHeader):
|
if isinstance(name, LocalHeader):
|
||||||
name = name.filename
|
name = name.filename
|
||||||
try:
|
offset, header = self._get_file_info(name)
|
||||||
offset, header = self.file_info.get(name)
|
|
||||||
except KeyError:
|
|
||||||
raise ValueError('This ZIP container has no file named: %s'%name)
|
|
||||||
|
|
||||||
self.stream.seek(offset)
|
self.stream.seek(offset)
|
||||||
dest = SpooledTemporaryFile(max_size=spool_size)
|
dest = SpooledTemporaryFile(max_size=spool_size)
|
||||||
|
|
||||||
@ -283,10 +285,7 @@ class LocalZipFile(object):
|
|||||||
return dest
|
return dest
|
||||||
|
|
||||||
def getinfo(self, name):
|
def getinfo(self, name):
|
||||||
try:
|
offset, header = self._get_file_info(name)
|
||||||
offset, header = self.file_info.get(name)
|
|
||||||
except KeyError:
|
|
||||||
raise ValueError('This ZIP container has no file named: %s'%name)
|
|
||||||
return header
|
return header
|
||||||
|
|
||||||
def read(self, name, spool_size=5*1024*1024):
|
def read(self, name, spool_size=5*1024*1024):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user