summaryrefslogtreecommitdiff
path: root/numpy/lib/format.py
diff options
context:
space:
mode:
authorPaul Müller <paulmueller@users.noreply.github.com>2018-11-01 18:28:28 +0100
committerMatti Picus <matti.picus@gmail.com>2018-11-01 19:28:28 +0200
commitcc761fe87b846228c38eb9b1d71d48cc423f53eb (patch)
treedd74676e8f6e8cf6ab6ff6d633a710682923e8f1 /numpy/lib/format.py
parentb4b62775772aa5f67c469777371374d2b7e27d29 (diff)
downloadnumpy-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.py16
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)