forked from VimPlug/jedi
Refactor environments a bit
This commit is contained in:
@@ -69,6 +69,7 @@ import parso
|
||||
|
||||
from jedi import debug
|
||||
from jedi import parser_utils
|
||||
from jedi.api.environment import get_default_environment
|
||||
from jedi.evaluate.utils import unite
|
||||
from jedi.evaluate import imports
|
||||
from jedi.evaluate import recursion
|
||||
@@ -83,11 +84,10 @@ from jedi.evaluate.context import ClassContext, FunctionContext, \
|
||||
from jedi.evaluate.context.iterable import CompForContext
|
||||
from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \
|
||||
eval_node, check_tuple_assignments
|
||||
from jedi.evaluate.compiled.subprocess import EvaluatorSubprocess, EvaluatorSameProcess
|
||||
|
||||
|
||||
class Evaluator(object):
|
||||
def __init__(self, grammar, project, compiled_sub_process=None):
|
||||
def __init__(self, grammar, project, environment=None):
|
||||
self.grammar = grammar
|
||||
self.latest_grammar = parso.load_grammar(version='3.6')
|
||||
self.memoize_cache = {} # for memoize decorators
|
||||
@@ -104,10 +104,10 @@ class Evaluator(object):
|
||||
self.access_cache = {}
|
||||
project.add_evaluator(self)
|
||||
|
||||
if compiled_sub_process is None:
|
||||
self.compiled_subprocess = EvaluatorSameProcess(self)
|
||||
else:
|
||||
self.compiled_subprocess = EvaluatorSubprocess(self, compiled_sub_process)
|
||||
if environment is None:
|
||||
environment = get_default_environment()
|
||||
self.environment = environment
|
||||
self.compiled_subprocess = environment.get_evaluator_subprocess(self)
|
||||
|
||||
self.reset_recursion_limitations()
|
||||
|
||||
|
||||
@@ -201,7 +201,12 @@ class Listener(object):
|
||||
try:
|
||||
evaluator = self._evaluators[evaluator_id]
|
||||
except KeyError:
|
||||
evaluator = Evaluator(None, project=project.Project())
|
||||
from jedi.api.environment import InterpreterEnvironment
|
||||
evaluator = Evaluator(
|
||||
grammar=None,
|
||||
project=project.Project(),
|
||||
environment=InterpreterEnvironment()
|
||||
)
|
||||
self._evaluators[evaluator_id] = evaluator
|
||||
return evaluator
|
||||
|
||||
|
||||
Reference in New Issue
Block a user