1
0
forked from VimPlug/jedi

Get rid of the imp library import in Python3 to avoid warnings, fixes #1001

This commit is contained in:
Dave Halter
2018-03-05 10:55:21 +01:00
parent d063dadcf7
commit 9e9c62a5ab
4 changed files with 20 additions and 10 deletions

View File

@@ -3,7 +3,6 @@ To ensure compatibility from Python ``2.7`` - ``3.x``, a module has been
created. Clearly there is huge need to use conforming syntax.
"""
import sys
import imp
import os
import re
import pkgutil
@@ -108,6 +107,9 @@ def find_module_py33(string, path=None, loader=None, full_name=None):
def find_module_pre_py33(string, path=None, full_name=None):
# This import is here, because in other places it will raise a
# DeprecationWarning.
import imp
try:
module_file, module_path, description = imp.find_module(string, path)
module_type = description[2]
@@ -217,6 +219,16 @@ class ImplicitNSInfo(object):
self.name = name
self.paths = paths
if is_py3:
all_suffixes = importlib.machinery.all_suffixes
else:
def all_suffixes():
# Is deprecated and raises a warning in Python 3.6.
import imp
return [suffix for suffix, _, _ in imp.get_suffixes()]
# unicode function
try:
unicode = unicode

View File

@@ -1,8 +1,8 @@
import sys
import os
import imp
from jedi._compatibility import find_module, cast_path, force_unicode, iter_modules
from jedi._compatibility import find_module, cast_path, force_unicode, \
iter_modules, all_suffixes
from jedi.evaluate.compiled import access
from jedi import parser_utils
@@ -90,7 +90,7 @@ def _get_init_path(directory_path):
The __init__ file can be searched in a directory. If found return it, else
None.
"""
for suffix, _, _ in imp.get_suffixes():
for suffix in all_suffixes():
path = os.path.join(directory_path, '__init__' + suffix)
if os.path.exists(path):
return path

View File

@@ -1,11 +1,10 @@
import imp
import re
import os
from parso import python_bytes_to_unicode
from jedi.evaluate.cache import evaluator_method_cache
from jedi._compatibility import iter_modules
from jedi._compatibility import iter_modules, all_suffixes
from jedi.evaluate.filters import GlobalNameFilter, ContextNameMixin, \
AbstractNameDefinition, ParserTreeFilter, DictFilter, MergedFilter
from jedi.evaluate import compiled
@@ -107,7 +106,7 @@ class ModuleContext(TreeContext):
:return: The path to the directory of a package. None in case it's not
a package.
"""
for suffix, _, _ in imp.get_suffixes():
for suffix in all_suffixes():
ending = '__init__' + suffix
py__file__ = self.py__file__()
if py__file__ is not None and py__file__.endswith(ending):

View File

@@ -1,7 +1,6 @@
import os
import imp
from jedi._compatibility import unicode, force_unicode
from jedi._compatibility import unicode, force_unicode, all_suffixes
from jedi.evaluate.cache import evaluator_method_cache
from jedi.evaluate.base_context import ContextualizedNode
from jedi.evaluate.helpers import is_string
@@ -198,7 +197,7 @@ def dotted_path_in_sys_path(sys_path, module_path):
Returns the dotted path inside a sys.path.
"""
# First remove the suffix.
for suffix, _, _ in imp.get_suffixes():
for suffix in all_suffixes():
if module_path.endswith(suffix):
module_path = module_path[:-len(suffix)]
break