summaryrefslogtreecommitdiffstats
path: root/Lib/importlib/_bootstrap_external.py
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2016-09-08 01:39:18 (GMT)
committerBrett Cannon <brett@python.org>2016-09-08 01:39:18 (GMT)
commit035a1003820c0148b9a12f3034829fcc655a92bb (patch)
tree70e69c549aee6c15150b402951999419135984cb /Lib/importlib/_bootstrap_external.py
parentd5f92239818eef182fadc7c6f81f70912090573d (diff)
downloadcpython-035a1003820c0148b9a12f3034829fcc655a92bb.zip
cpython-035a1003820c0148b9a12f3034829fcc655a92bb.tar.gz
cpython-035a1003820c0148b9a12f3034829fcc655a92bb.tar.bz2
Issue #26667: Add path-like object support to importlib.util.
Diffstat (limited to 'Lib/importlib/_bootstrap_external.py')
-rw-r--r--Lib/importlib/_bootstrap_external.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index d36e4ac..828246c 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -279,6 +279,7 @@ def cache_from_source(path, debug_override=None, *, optimization=None):
message = 'debug_override or optimization must be set to None'
raise TypeError(message)
optimization = '' if debug_override else 1
+ path = _os.fspath(path)
head, tail = _path_split(path)
base, sep, rest = tail.rpartition('.')
tag = sys.implementation.cache_tag
@@ -309,6 +310,7 @@ def source_from_cache(path):
"""
if sys.implementation.cache_tag is None:
raise NotImplementedError('sys.implementation.cache_tag is None')
+ path = _os.fspath(path)
head, pycache_filename = _path_split(path)
head, pycache = _path_split(head)
if pycache != _PYCACHE:
@@ -536,6 +538,8 @@ def spec_from_file_location(name, location=None, *, loader=None,
location = loader.get_filename(name)
except ImportError:
pass
+ else:
+ location = _os.fspath(location)
# If the location is on the filesystem, but doesn't actually exist,
# we could return None here, indicating that the location is not