@@ -295,9 +295,14 @@ def _get_handle(path_or_buf, mode, encoding=None, compression=None,
295
295
296
296
Returns
297
297
-------
298
- A file like object.
298
+ f : file-like
299
+ A file-like object
300
+ new_handle : file-like or None
301
+ A file-like object that was openned in this function. Or None if none
302
+ were openned.
299
303
"""
300
304
305
+ new_handle = None
301
306
f = path_or_buf
302
307
is_path = isinstance (path_or_buf , compat .string_types )
303
308
@@ -358,7 +363,8 @@ def _get_handle(path_or_buf, mode, encoding=None, compression=None,
358
363
from io import TextIOWrapper
359
364
f = TextIOWrapper (f , encoding = encoding )
360
365
361
- return f
366
+ new_handle = f
367
+ return f , new_handle
362
368
363
369
elif is_path :
364
370
if compat .PY2 :
@@ -370,11 +376,13 @@ def _get_handle(path_or_buf, mode, encoding=None, compression=None,
370
376
else :
371
377
# Python 3 and no explicit encoding
372
378
f = open (path_or_buf , mode , errors = 'replace' )
379
+ new_handle = f
373
380
374
381
# in Python 3, convert BytesIO or fileobjects passed with an encoding
375
382
if compat .PY3 and isinstance (path_or_buf , compat .BytesIO ):
376
383
from io import TextIOWrapper
377
384
f = TextIOWrapper (f , encoding = encoding )
385
+ new_handle = f
378
386
379
387
if memory_map and hasattr (f , 'fileno' ):
380
388
try :
@@ -388,7 +396,7 @@ def _get_handle(path_or_buf, mode, encoding=None, compression=None,
388
396
# leave the file handler as is then
389
397
pass
390
398
391
- return f
399
+ return f , new_handle
392
400
393
401
394
402
class MMapWrapper (BaseIterator ):
0 commit comments