diff --git a/jedi/inference/compiled/subprocess/__main__.py b/jedi/inference/compiled/subprocess/__main__.py index 5e92229f..fdf7b742 100644 --- a/jedi/inference/compiled/subprocess/__main__.py +++ b/jedi/inference/compiled/subprocess/__main__.py @@ -1,5 +1,10 @@ import os import sys +from importlib.machinery import PathFinder + +# Remove the first entry, because it's simply a directory entry that equals +# this directory. +del sys.path[0] def _get_paths(): @@ -11,39 +16,22 @@ def _get_paths(): return {'jedi': _jedi_path, 'parso': _parso_path} -# Remove the first entry, because it's simply a directory entry that equals -# this directory. -del sys.path[0] +class _ExactImporter(object): + def __init__(self, path_dct): + self._path_dct = path_dct -if sys.version_info > (3, 4): - from importlib.machinery import PathFinder + def find_module(self, fullname, path=None): + if path is None and fullname in self._path_dct: + p = self._path_dct[fullname] + loader = PathFinder.find_module(fullname, path=[p]) + return loader + return None - class _ExactImporter(object): - def __init__(self, path_dct): - self._path_dct = path_dct - def find_module(self, fullname, path=None): - if path is None and fullname in self._path_dct: - p = self._path_dct[fullname] - loader = PathFinder.find_module(fullname, path=[p]) - return loader - return None - - # Try to import jedi/parso. - sys.meta_path.insert(0, _ExactImporter(_get_paths())) - from jedi.inference.compiled import subprocess # NOQA - sys.meta_path.pop(0) -else: - import imp - - def load(name): - paths = list(_get_paths().values()) - fp, pathname, description = imp.find_module(name, paths) - return imp.load_module(name, fp, pathname, description) - - load('parso') - load('jedi') - from jedi.inference.compiled import subprocess # NOQA +# Try to import jedi/parso. +sys.meta_path.insert(0, _ExactImporter(_get_paths())) +from jedi.inference.compiled import subprocess # NOQA +sys.meta_path.pop(0) from jedi._compatibility import highest_pickle_protocol # noqa: E402