Remove more usage of APIs deprecated by PEP 451.

This commit is contained in:
Eric Snow 2014-01-06 20:42:59 -07:00
parent 3a62d14b24
commit 02b9f9d6bb
3 changed files with 16 additions and 14 deletions

View File

@ -659,20 +659,20 @@ class EditorWindow(object):
return return
# XXX Ought to insert current file's directory in front of path # XXX Ought to insert current file's directory in front of path
try: try:
loader = importlib.find_loader(name) spec = importlib.find_spec(name)
except (ValueError, ImportError) as msg: except (ValueError, ImportError) as msg:
tkMessageBox.showerror("Import error", str(msg), parent=self.text) tkMessageBox.showerror("Import error", str(msg), parent=self.text)
return return
if loader is None: if spec is None:
tkMessageBox.showerror("Import error", "module not found", tkMessageBox.showerror("Import error", "module not found",
parent=self.text) parent=self.text)
return return
if not isinstance(loader, importlib.abc.SourceLoader): if not isinstance(spec.loader, importlib.abc.SourceLoader):
tkMessageBox.showerror("Import error", "not a source-based module", tkMessageBox.showerror("Import error", "not a source-based module",
parent=self.text) parent=self.text)
return return
try: try:
file_path = loader.get_filename(name) file_path = spec.loader.get_filename(name)
except AttributeError: except AttributeError:
tkMessageBox.showerror("Import error", tkMessageBox.showerror("Import error",
"loader does not support get_filename", "loader does not support get_filename",

View File

@ -554,13 +554,14 @@ def extend_path(path, name):
finder = get_importer(dir) finder = get_importer(dir)
if finder is not None: if finder is not None:
portions = []
if hasattr(finder, 'find_spec'):
spec = finder.find_spec(final_name)
if spec is not None:
portions = spec.submodule_search_locations or []
# Is this finder PEP 420 compliant? # Is this finder PEP 420 compliant?
if hasattr(finder, 'find_loader'): elif hasattr(finder, 'find_loader'):
loader, portions = finder.find_loader(final_name) _, portions = finder.find_loader(final_name)
else:
# No, no need to call it
loader = None
portions = []
for portion in portions: for portion in portions:
# XXX This may still add duplicate entries to path on # XXX This may still add duplicate entries to path on

View File

@ -140,13 +140,14 @@ def _readmodule(module, path, inpackage=None):
search_path = path search_path = path
else: else:
search_path = path + sys.path search_path = path + sys.path
loader = importlib.find_loader(fullmodule, search_path) # XXX This will change once issue19944 lands.
fname = loader.get_filename(fullmodule) spec = importlib.find_spec(fullmodule, search_path)
fname = spec.loader.get_filename(fullmodule)
_modules[fullmodule] = dict _modules[fullmodule] = dict
if loader.is_package(fullmodule): if spec.loader.is_package(fullmodule):
dict['__path__'] = [os.path.dirname(fname)] dict['__path__'] = [os.path.dirname(fname)]
try: try:
source = loader.get_source(fullmodule) source = spec.loader.get_source(fullmodule)
if source is None: if source is None:
return dict return dict
except (AttributeError, ImportError): except (AttributeError, ImportError):