@@ -138,7 +138,7 @@ async def _ls_real(self, url, detail=True, **kwargs):
138
138
logger .debug (url )
139
139
session = await self .set_session ()
140
140
async with session .get (url , ** self .kwargs ) as r :
141
- r . raise_for_status ( )
141
+ self . _raise_not_found_for_status ( r , url )
142
142
text = await r .text ()
143
143
if self .simple_links :
144
144
links = ex2 .findall (text ) + [u [2 ] for u in ex .findall (text )]
@@ -190,6 +190,14 @@ async def _ls(self, url, detail=True, **kwargs):
190
190
191
191
ls = sync_wrapper (_ls )
192
192
193
+ def _raise_not_found_for_status (self , response , url ):
194
+ """
195
+ Raises FileNotFoundError for 404s, otherwise uses raise_for_status.
196
+ """
197
+ if response .status == 404 :
198
+ raise FileNotFoundError (url )
199
+ response .raise_for_status ()
200
+
193
201
async def _cat_file (self , url , start = None , end = None , ** kwargs ):
194
202
kw = self .kwargs .copy ()
195
203
kw .update (kwargs )
@@ -225,9 +233,7 @@ async def _cat_file(self, url, start=None, end=None, **kwargs):
225
233
kw ["headers" ] = headers
226
234
session = await self .set_session ()
227
235
async with session .get (url , ** kw ) as r :
228
- if r .status == 404 :
229
- raise FileNotFoundError (url )
230
- r .raise_for_status ()
236
+ self ._raise_not_found_for_status (r , url )
231
237
out = await r .read ()
232
238
return out
233
239
@@ -237,9 +243,7 @@ async def _get_file(self, rpath, lpath, chunk_size=5 * 2 ** 20, **kwargs):
237
243
logger .debug (rpath )
238
244
session = await self .set_session ()
239
245
async with session .get (rpath , ** self .kwargs ) as r :
240
- if r .status == 404 :
241
- raise FileNotFoundError (rpath )
242
- r .raise_for_status ()
246
+ self ._raise_not_found_for_status (r , rpath )
243
247
with open (lpath , "wb" ) as fd :
244
248
chunk = True
245
249
while chunk :
0 commit comments