1
0
forked from VimPlug/jedi

Try to migrate to the new project API

This commit is contained in:
Dave Halter
2018-01-16 23:56:35 +01:00
parent 9b9587a9dd
commit fe813292cf
10 changed files with 29 additions and 20 deletions

View File

@@ -25,10 +25,10 @@ from jedi.api import interpreter
from jedi.api import helpers
from jedi.api.completion import Completion
from jedi.api.environment import InterpreterEnvironment
from jedi.api.project import get_default_project
from jedi.evaluate import Evaluator
from jedi.evaluate import imports
from jedi.evaluate import usages
from jedi.evaluate.project import Project
from jedi.evaluate.arguments import try_iter_content
from jedi.evaluate.helpers import get_module_names, evaluate_call_of_leaf
from jedi.evaluate.sys_path import dotted_path_in_sys_path
@@ -82,10 +82,11 @@ class Script(object):
:type sys_path: list
:param environment: TODO
:type sys_path: Environment
:param project: TODO
"""
def __init__(self, source=None, line=None, column=None, path=None,
encoding='utf-8', sys_path=None, environment=None):
encoding='utf-8', sys_path=None, environment=None,
project=None):
self._orig_path = path
# An empty path (also empty string) should always result in no path.
self.path = os.path.abspath(path) if path else None
@@ -116,9 +117,12 @@ class Script(object):
sys_path = list(map(force_unicode, sys_path))
# Load the Python grammar of the current interpreter.
project = Project(sys_path=sys_path)
if project is None:
project = get_default_project()
# TODO deprecate and remove sys_path from the Script API.
project._sys_path = sys_path
self._evaluator = Evaluator(project, environment)
project.add_script_path(self.path)
self._project = project
debug.speed('init')
@cache.memoize_method
@@ -139,7 +143,7 @@ class Script(object):
self.path
)
if self.path is not None:
name = dotted_path_in_sys_path(self._evaluator.project.sys_path, self.path)
name = dotted_path_in_sys_path(self._evaluator.get_sys_path(), self.path)
if name is not None:
imports.add_module(self._evaluator, name, module)
return module

View File

@@ -7,7 +7,7 @@ from jedi.api.environment import DefaultEnvironment, \
from jedi.api.exceptions import WrongVersion
from jedi._compatibility import force_unicode
from jedi.evaluate.sys_path import detect_additional_paths
from jedi.evaluate.cache import evaluator_function_cache
from jedi.evaluate.cache import evaluator_as_method_param_cache
_CONFIG_FOLDER = '.jedi'
_CONTAINS_POTENTIAL_PROJECT = 'setup.py', '.git', '.hg', 'MANIFEST.in'
@@ -80,7 +80,7 @@ class Project(object):
pass
return sys_path
@evaluator_function_cache()
@evaluator_as_method_param_cache()
def _get_sys_path(self, evaluator, environment=None):
"""
Keep this method private for all users of jedi. However internally this
@@ -135,7 +135,7 @@ def get_default_project():
def _get_default_project():
previous = None
curdir = dir = os.path.realpath(os.curdir())
curdir = dir = os.path.realpath(os.getcwd())
probable_path = None
while dir != previous:
try: