@@ -11,6 +11,10 @@ class NegativeSeek(io.UnsupportedOperation):
1111 pass
1212
1313
14+ class RemoteIOError (Exception ):
15+ pass
16+
17+
1418def 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