Skip to content

Commit 98d8a7b

Browse files
committed
Ensure exceptions are propagated
1 parent a563469 commit 98d8a7b

1 file changed

Lines changed: 17 additions & 12 deletions

File tree

remotezip.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ class NegativeSeek(io.UnsupportedOperation):
1111
pass
1212

1313

14+
class RemoteIOError(Exception):
15+
pass
16+
17+
1418
def itercouples(objects):
1519
it = iter(objects)
1620
try:
@@ -167,19 +171,20 @@ def make_header(range_min, range_max):
167171

168172
return "bytes=%s-%s" % (range_min, range_max)
169173

170-
def fetch_fun(self, data_range, stream=False):
171-
range_header = self.make_header(*data_range)
172-
kwargs = dict(self.kwargs)
174+
@staticmethod
175+
def request(url, range_header, kwargs, stream=False):
173176
kwargs.update({'stream': stream})
174177
kwargs['headers'] = headers = dict(kwargs.get('headers', {}))
175178
headers['Range'] = range_header
176-
try:
177-
res = requests.get(self.url, **kwargs)
178-
res.raise_for_status()
179-
except Exception as e:
180-
print(e)
181-
pb = self.make_buffer(res.raw if stream else res.content, res.headers['Content-Range'], stream=stream)
182-
print(pb)
183-
return pb
184-
179+
res = requests.get(url, **kwargs)
180+
res.raise_for_status()
181+
return res.raw if stream else res.content, res.headers
185182

183+
def fetch_fun(self, data_range, stream=False):
184+
range_header = self.make_header(*data_range)
185+
kwargs = dict(self.kwargs)
186+
try:
187+
res, headers = self.request(self.url, range_header, kwargs, stream=stream)
188+
return self.make_buffer(res, headers['Content-Range'], stream=stream)
189+
except IOError as e:
190+
raise RemoteIOError(str(e))

0 commit comments

Comments
 (0)