diff options
author | Paul Müller <paulmueller@users.noreply.github.com> | 2018-11-01 18:28:28 +0100 |
---|---|---|
committer | Matti Picus <matti.picus@gmail.com> | 2018-11-01 19:28:28 +0200 |
commit | cc761fe87b846228c38eb9b1d71d48cc423f53eb (patch) | |
tree | dd74676e8f6e8cf6ab6ff6d633a710682923e8f1 /numpy/lib/format.py | |
parent | b4b62775772aa5f67c469777371374d2b7e27d29 (diff) | |
download | numpy-cc761fe87b846228c38eb9b1d71d48cc423f53eb.tar.gz |
ENH: Improve support for pathlib.Path objects in load functions (#11348)
* ENH: Improve support for pathlib.Path objects in more functions
Diffstat (limited to 'numpy/lib/format.py')
-rw-r--r-- | numpy/lib/format.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/numpy/lib/format.py b/numpy/lib/format.py index e25868236..1ef3dca47 100644 --- a/numpy/lib/format.py +++ b/numpy/lib/format.py @@ -161,7 +161,9 @@ import sys import io import warnings from numpy.lib.utils import safe_eval -from numpy.compat import asbytes, asstr, isfileobj, long, basestring +from numpy.compat import ( + asbytes, asstr, isfileobj, long, os_fspath + ) from numpy.core.numeric import pickle @@ -706,7 +708,7 @@ def open_memmap(filename, mode='r+', dtype=None, shape=None, Parameters ---------- - filename : str + filename : str or path-like The name of the file on disk. This may *not* be a file-like object. mode : str, optional @@ -747,9 +749,9 @@ def open_memmap(filename, mode='r+', dtype=None, shape=None, memmap """ - if not isinstance(filename, basestring): - raise ValueError("Filename must be a string. Memmap cannot use" - " existing file handles.") + if isfileobj(filename): + raise ValueError("Filename must be a string or a path-like object." + " Memmap cannot use existing file handles.") if 'w' in mode: # We are creating the file, not reading it. @@ -767,7 +769,7 @@ def open_memmap(filename, mode='r+', dtype=None, shape=None, shape=shape, ) # If we got here, then it should be safe to create the file. - fp = open(filename, mode+'b') + fp = open(os_fspath(filename), mode+'b') try: used_ver = _write_array_header(fp, d, version) # this warning can be removed when 1.9 has aged enough @@ -779,7 +781,7 @@ def open_memmap(filename, mode='r+', dtype=None, shape=None, fp.close() else: # Read the header of the file first. - fp = open(filename, 'rb') + fp = open(os_fspath(filename), 'rb') try: version = read_magic(fp) _check_version(version) |