1
0
forked from VimPlug/jedi

Move the base Context stuff to another module to keep context free for imports.

This commit is contained in:
Dave Halter
2017-09-30 16:46:07 +02:00
parent 3c2221ec2d
commit 3c75f27376
27 changed files with 62 additions and 60 deletions

View File

@@ -33,7 +33,7 @@ from jedi.evaluate.sys_path import get_venv_path, dotted_path_in_sys_path
from jedi.evaluate.iterable import unpack_tuple_to_dict from jedi.evaluate.iterable import unpack_tuple_to_dict
from jedi.evaluate.filters import TreeNameDefinition from jedi.evaluate.filters import TreeNameDefinition
from jedi.evaluate.syntax_tree import tree_name_to_contexts from jedi.evaluate.syntax_tree import tree_name_to_contexts
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
from jedi.evaluate.context.module import ModuleName from jedi.evaluate.context.module import ModuleName
# Jedi uses lots and lots of recursion. By setting this a little bit higher, we # Jedi uses lots and lots of recursion. By setting this a little bit higher, we

View File

@@ -2,10 +2,10 @@
TODO Some parts of this module are still not well documented. TODO Some parts of this module are still not well documented.
""" """
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate.compiled import mixed from jedi.evaluate.compiled import mixed
from jedi.evaluate.context import Context from jedi.evaluate.base_context import Context
class NamespaceObject(object): class NamespaceObject(object):

View File

@@ -2,7 +2,7 @@ from jedi.api import classes
from parso.python import tree from parso.python import tree
from jedi.evaluate import imports from jedi.evaluate import imports
from jedi.evaluate.filters import TreeNameDefinition from jedi.evaluate.filters import TreeNameDefinition
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
def compare_contexts(c1, c2): def compare_contexts(c1, c2):

View File

@@ -78,7 +78,7 @@ from jedi.evaluate import compiled
from jedi.evaluate import helpers from jedi.evaluate import helpers
from jedi.evaluate.filters import TreeNameDefinition, ParamName from jedi.evaluate.filters import TreeNameDefinition, ParamName
from jedi.evaluate.context.instance import AnonymousInstance, BoundMethod from jedi.evaluate.context.instance import AnonymousInstance, BoundMethod
from jedi.evaluate.context import ContextualizedName, ContextualizedNode, \ from jedi.evaluate.base_context import ContextualizedName, ContextualizedNode, \
ContextSet, NO_CONTEXTS, iterate_contexts ContextSet, NO_CONTEXTS, iterate_contexts
from jedi.evaluate.context.function import FunctionContext from jedi.evaluate.context.function import FunctionContext
from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \ from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \

View File

@@ -92,7 +92,7 @@ def _check_for_setattr(instance):
""" """
Check if there's any setattr method inside an instance. If so, return True. Check if there's any setattr method inside an instance. If so, return True.
""" """
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
module = instance.get_root_context() module = instance.get_root_context()
if not isinstance(module, ModuleContext): if not isinstance(module, ModuleContext):
return False return False

View File

@@ -13,7 +13,7 @@ from jedi import debug
from jedi.cache import underscore_memoization, memoize_method from jedi.cache import underscore_memoization, memoize_method
from jedi.evaluate.filters import AbstractFilter, AbstractNameDefinition, \ from jedi.evaluate.filters import AbstractFilter, AbstractNameDefinition, \
ContextNameMixin ContextNameMixin
from jedi.evaluate.context import Context, LazyKnownContext, ContextSet from jedi.evaluate.base_context import Context, ContextSet
from jedi.evaluate.compiled.getattr_static import getattr_static from jedi.evaluate.compiled.getattr_static import getattr_static
from . import fake from . import fake
@@ -231,6 +231,7 @@ class CompiledObject(Context):
# Get rid of side effects, we won't call custom `__getitem__`s. # Get rid of side effects, we won't call custom `__getitem__`s.
return return
from jedi.evaluate.context import LazyKnownContext
for i, part in enumerate(self.obj): for i, part in enumerate(self.obj):
if i > 20: if i > 20:
# Should not go crazy with large iterators # Should not go crazy with large iterators

View File

@@ -9,7 +9,8 @@ from jedi import settings
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.cache import underscore_memoization from jedi.cache import underscore_memoization
from jedi.evaluate import imports from jedi.evaluate import imports
from jedi.evaluate.context import Context, ContextSet from jedi.evaluate.base_context import Context, ContextSet
from jedi.evaluate.context import ModuleContext
from jedi.evaluate.cache import evaluator_function_cache from jedi.evaluate.cache import evaluator_function_cache
from jedi.evaluate.compiled.getattr_static import getattr_static from jedi.evaluate.compiled.getattr_static import getattr_static
@@ -206,7 +207,6 @@ def _create(evaluator, obj, parent_context=None, *args):
if parent_context.tree_node.get_root_node() == module_node: if parent_context.tree_node.get_root_node() == module_node:
module_context = parent_context.get_root_context() module_context = parent_context.get_root_context()
else: else:
from jedi.evaluate.context.module import ModuleContext
module_context = ModuleContext(evaluator, module_node, path=path) module_context = ModuleContext(evaluator, module_node, path=path)
# TODO this __name__ is probably wrong. # TODO this __name__ is probably wrong.
name = compiled_object.get_root_context().py__name__() name = compiled_object.get_root_context().py__name__()

View File

@@ -1,5 +1,3 @@
from jedi.evaluate.context.base import Context, iterate_contexts, \
TreeContext, ContextualizedName, ContextualizedNode, ContextSet, \
NO_CONTEXTS, iterator_to_context_set
from jedi.evaluate.context.lazy import AbstractLazyContext, LazyKnownContext, \ from jedi.evaluate.context.lazy import AbstractLazyContext, LazyKnownContext, \
LazyKnownContexts, LazyTreeContext, LazyUnknownContext, get_merged_lazy_context LazyKnownContexts, LazyTreeContext, LazyUnknownContext, get_merged_lazy_context
from jedi.evaluate.context.module import ModuleContext

View File

@@ -13,8 +13,9 @@ from jedi.evaluate import helpers
from jedi.evaluate import iterable from jedi.evaluate import iterable
from jedi.evaluate.filters import ParserTreeFilter, FunctionExecutionFilter, \ from jedi.evaluate.filters import ParserTreeFilter, FunctionExecutionFilter, \
ContextName, AbstractNameDefinition, ParamName ContextName, AbstractNameDefinition, ParamName
from jedi.evaluate import context from jedi.evaluate.base_context import ContextualizedNode, NO_CONTEXTS, \
from jedi.evaluate.context import ContextualizedNode, NO_CONTEXTS, ContextSet ContextSet, TreeContext
from jedi.evaluate.context import LazyKnownContexts, LazyKnownContext, LazyTreeContext
from jedi import parser_utils from jedi import parser_utils
from jedi.evaluate.parser_cache import get_yield_exprs from jedi.evaluate.parser_cache import get_yield_exprs
@@ -33,7 +34,7 @@ class LambdaName(AbstractNameDefinition):
return ContextSet(self._lambda_context) return ContextSet(self._lambda_context)
class FunctionContext(use_metaclass(CachedMetaClass, context.TreeContext)): class FunctionContext(use_metaclass(CachedMetaClass, TreeContext)):
""" """
Needed because of decorators. Decorators are evaluated here. Needed because of decorators. Decorators are evaluated here.
""" """
@@ -98,7 +99,7 @@ class FunctionContext(use_metaclass(CachedMetaClass, context.TreeContext)):
for param in self.tree_node.get_params()] for param in self.tree_node.get_params()]
class FunctionExecutionContext(context.TreeContext): class FunctionExecutionContext(TreeContext):
""" """
This class is used to evaluate functions and their returns. This class is used to evaluate functions and their returns.
@@ -155,7 +156,7 @@ class FunctionExecutionContext(context.TreeContext):
def _eval_yield(self, yield_expr): def _eval_yield(self, yield_expr):
if yield_expr.type == 'keyword': if yield_expr.type == 'keyword':
# `yield` just yields None. # `yield` just yields None.
yield context.LazyKnownContext(compiled.create(self.evaluator, None)) yield LazyKnownContext(compiled.create(self.evaluator, None))
return return
node = yield_expr.children[1] node = yield_expr.children[1]
@@ -164,7 +165,7 @@ class FunctionExecutionContext(context.TreeContext):
for lazy_context in cn.infer().iterate(cn): for lazy_context in cn.infer().iterate(cn):
yield lazy_context yield lazy_context
else: else:
yield context.LazyTreeContext(self, node) yield LazyTreeContext(self, node)
@recursion.execution_recursion_decorator(default=iter([])) @recursion.execution_recursion_decorator(default=iter([]))
def get_yield_values(self): def get_yield_values(self):
@@ -192,7 +193,7 @@ class FunctionExecutionContext(context.TreeContext):
else: else:
types = self.get_return_values(check_yields=True) types = self.get_return_values(check_yields=True)
if types: if types:
yield context.LazyKnownContexts(types) yield LazyKnownContexts(types)
return return
last_for_stmt = for_stmt last_for_stmt = for_stmt
@@ -222,5 +223,3 @@ class FunctionExecutionContext(context.TreeContext):
@evaluator_method_cache() @evaluator_method_cache()
def get_params(self): def get_params(self):
return self.var_args.get_params(self) return self.var_args.get_params(self)

View File

@@ -4,8 +4,9 @@ from jedi._compatibility import is_py3
from jedi import debug from jedi import debug
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate import filters from jedi.evaluate import filters
from jedi.evaluate.context import Context, LazyKnownContext, LazyKnownContexts, \ from jedi.evaluate.base_context import Context, NO_CONTEXTS, ContextSet, \
ContextSet, iterator_to_context_set, NO_CONTEXTS iterator_to_context_set
from jedi.evaluate.context import LazyKnownContext, LazyKnownContexts
from jedi.evaluate.cache import evaluator_method_cache from jedi.evaluate.cache import evaluator_method_cache
from jedi.evaluate.param import AbstractArguments, AnonymousArguments from jedi.evaluate.param import AbstractArguments, AnonymousArguments
from jedi.cache import memoize_method from jedi.cache import memoize_method

View File

@@ -43,8 +43,9 @@ from jedi.evaluate import compiled
from jedi.evaluate import param from jedi.evaluate import param
from jedi.evaluate.filters import ParserTreeFilter, TreeNameDefinition, \ from jedi.evaluate.filters import ParserTreeFilter, TreeNameDefinition, \
ContextName, AnonymousInstanceParamName ContextName, AnonymousInstanceParamName
from jedi.evaluate import context from jedi.evaluate.base_context import ContextSet, iterator_to_context_set, \
from jedi.evaluate.context import ContextSet, iterator_to_context_set TreeContext
from jedi.evaluate.context import LazyKnownContext
def apply_py__get__(context, base_context): def apply_py__get__(context, base_context):
@@ -84,7 +85,7 @@ class ClassFilter(ParserTreeFilter):
for name in names] for name in names]
class ClassContext(use_metaclass(CachedMetaClass, context.TreeContext)): class ClassContext(use_metaclass(CachedMetaClass, TreeContext)):
""" """
This class is not only important to extend `tree.Class`, it is also a This class is not only important to extend `tree.Class`, it is also a
important for descriptors (if the descriptor methods are evaluated or not). important for descriptors (if the descriptor methods are evaluated or not).
@@ -138,7 +139,7 @@ class ClassContext(use_metaclass(CachedMetaClass, context.TreeContext)):
args = param.TreeArguments(self.evaluator, self, arglist) args = param.TreeArguments(self.evaluator, self, arglist)
return [value for key, value in args.unpack() if key is None] return [value for key, value in args.unpack() if key is None]
else: else:
return [context.LazyKnownContext(compiled.create(self.evaluator, object))] return [LazyKnownContext(compiled.create(self.evaluator, object))]
def py__call__(self, params): def py__call__(self, params):
from jedi.evaluate.context.instance import TreeInstance from jedi.evaluate.context.instance import TreeInstance

View File

@@ -1,4 +1,4 @@
from jedi.evaluate.context import ContextSet, NO_CONTEXTS from jedi.evaluate.base_context import ContextSet, NO_CONTEXTS
class AbstractLazyContext(object): class AbstractLazyContext(object):
def __init__(self, data): def __init__(self, data):

View File

@@ -10,7 +10,7 @@ from jedi.evaluate.cache import CachedMetaClass, evaluator_method_cache
from jedi.evaluate.filters import GlobalNameFilter, ContextNameMixin, \ from jedi.evaluate.filters import GlobalNameFilter, ContextNameMixin, \
AbstractNameDefinition, ParserTreeFilter, DictFilter AbstractNameDefinition, ParserTreeFilter, DictFilter
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate.context import TreeContext from jedi.evaluate.base_context import TreeContext
from jedi.evaluate.imports import SubModuleName, infer_import from jedi.evaluate.imports import SubModuleName, infer_import
class _ModuleAttributeName(AbstractNameDefinition): class _ModuleAttributeName(AbstractNameDefinition):

View File

@@ -5,8 +5,7 @@ from jedi._compatibility import use_metaclass
from jedi.evaluate.cache import evaluator_method_cache, CachedMetaClass from jedi.evaluate.cache import evaluator_method_cache, CachedMetaClass
from jedi.evaluate import imports from jedi.evaluate import imports
from jedi.evaluate.filters import DictFilter, AbstractNameDefinition from jedi.evaluate.filters import DictFilter, AbstractNameDefinition
from jedi.evaluate import context from jedi.evaluate.base_context import NO_CONTEXTS, TreeContext
from jedi.evaluate.context import NO_CONTEXTS
class ImplicitNSName(AbstractNameDefinition): class ImplicitNSName(AbstractNameDefinition):
@@ -25,7 +24,7 @@ class ImplicitNSName(AbstractNameDefinition):
return self.implicit_ns_context return self.implicit_ns_context
class ImplicitNamespaceContext(use_metaclass(CachedMetaClass, context.TreeContext)): class ImplicitNamespaceContext(use_metaclass(CachedMetaClass, TreeContext)):
""" """
Provides support for implicit namespace packages Provides support for implicit namespace packages
""" """

View File

@@ -24,8 +24,9 @@ from jedi._compatibility import u
from jedi.evaluate.utils import indent_block from jedi.evaluate.utils import indent_block
from jedi.evaluate.cache import evaluator_method_cache from jedi.evaluate.cache import evaluator_method_cache
from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence
from jedi.evaluate.context import iterator_to_context_set, ContextSet, \ from jedi.evaluate.base_context import iterator_to_context_set, ContextSet, \
NO_CONTEXTS, LazyKnownContexts NO_CONTEXTS
from jedi.evaluate.context import LazyKnownContexts
DOCSTRING_PARAM_PATTERNS = [ DOCSTRING_PARAM_PATTERNS = [

View File

@@ -25,10 +25,9 @@ from jedi.evaluate import imports
from jedi.evaluate.param import TreeArguments, create_default_params from jedi.evaluate.param import TreeArguments, create_default_params
from jedi.evaluate.helpers import is_stdlib_path from jedi.evaluate.helpers import is_stdlib_path
from jedi.evaluate.utils import to_list from jedi.evaluate.utils import to_list
from jedi.evaluate.context import ContextSet
from jedi.parser_utils import get_parent_scope from jedi.parser_utils import get_parent_scope
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext, instance
from jedi.evaluate.context import instance from jedi.evaluate.base_context import ContextSet

View File

@@ -6,7 +6,7 @@ from abc import abstractmethod
from parso.tree import search_ancestor from parso.tree import search_ancestor
from jedi.evaluate import flow_analysis from jedi.evaluate import flow_analysis
from jedi.evaluate.context import ContextSet from jedi.evaluate.base_context import ContextSet
from jedi.parser_utils import get_parent_scope from jedi.parser_utils import get_parent_scope
from jedi.evaluate.utils import to_list from jedi.evaluate.utils import to_list

View File

@@ -27,7 +27,7 @@ from jedi.evaluate import flow_analysis
from jedi.evaluate import param from jedi.evaluate import param
from jedi.evaluate import helpers from jedi.evaluate import helpers
from jedi.evaluate.filters import get_global_filters, TreeNameDefinition from jedi.evaluate.filters import get_global_filters, TreeNameDefinition
from jedi.evaluate.context import ContextSet from jedi.evaluate.base_context import ContextSet
from jedi.parser_utils import is_scope, get_parent_scope from jedi.parser_utils import is_scope, get_parent_scope

View File

@@ -31,7 +31,7 @@ from jedi.evaluate import analysis
from jedi.evaluate.utils import unite from jedi.evaluate.utils import unite
from jedi.evaluate.cache import evaluator_method_cache from jedi.evaluate.cache import evaluator_method_cache
from jedi.evaluate.filters import AbstractNameDefinition from jedi.evaluate.filters import AbstractNameDefinition
from jedi.evaluate.context import ContextSet, NO_CONTEXTS from jedi.evaluate.base_context import ContextSet, NO_CONTEXTS
# This memoization is needed, because otherwise we will infinitely loop on # This memoization is needed, because otherwise we will infinitely loop on
@@ -420,7 +420,7 @@ class Importer(object):
:param only_modules: Indicates wheter it's possible to import a :param only_modules: Indicates wheter it's possible to import a
definition that is not defined in a module. definition that is not defined in a module.
""" """
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
from jedi.evaluate.context.namespace import ImplicitNamespaceContext from jedi.evaluate.context.namespace import ImplicitNamespaceContext
names = [] names = []
if self.import_path: if self.import_path:
@@ -490,7 +490,7 @@ def _load_module(evaluator, path=None, code=None, sys_path=None, parent_module=N
code=code, path=path, cache=True, diff_cache=True, code=code, path=path, cache=True, diff_cache=True,
cache_path=settings.cache_directory) cache_path=settings.cache_directory)
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
return ModuleContext(evaluator, module_node, path=path) return ModuleContext(evaluator, module_node, path=path)
else: else:
return compiled.load_module(evaluator, path) return compiled.load_module(evaluator, path)
@@ -509,7 +509,7 @@ def get_modules_containing_name(evaluator, modules, name):
""" """
Search a name in the directories of modules. Search a name in the directories of modules.
""" """
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
def check_python_file(path): def check_python_file(path):
try: try:

View File

@@ -28,17 +28,18 @@ from jedi.evaluate.utils import to_list
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate import helpers from jedi.evaluate import helpers
from jedi.evaluate import analysis from jedi.evaluate import analysis
from jedi.evaluate.helpers import is_string from jedi.evaluate import context
from jedi.evaluate import recursion from jedi.evaluate import recursion
from jedi.evaluate.helpers import is_string
from jedi.evaluate.cache import evaluator_method_cache from jedi.evaluate.cache import evaluator_method_cache
from jedi.evaluate.filters import DictFilter, AbstractNameDefinition, \ from jedi.evaluate.filters import DictFilter, AbstractNameDefinition, \
ParserTreeFilter ParserTreeFilter
from jedi.evaluate import context from jedi.evaluate.base_context import ContextSet, NO_CONTEXTS, Context, \
from jedi.evaluate.context import ContextSet, NO_CONTEXTS, Context TreeContext, ContextualizedNode
from jedi.parser_utils import get_comp_fors from jedi.parser_utils import get_comp_fors
class AbstractSequence(context.Context): class AbstractSequence(Context):
builtin_methods = {} builtin_methods = {}
api_type = 'instance' api_type = 'instance'
@@ -168,7 +169,7 @@ class GeneratorMixin(object):
return compiled.CompiledContextName(self, 'generator') return compiled.CompiledContextName(self, 'generator')
class Generator(GeneratorMixin, context.Context): class Generator(GeneratorMixin, Context):
"""Handling of `yield` functions.""" """Handling of `yield` functions."""
def __init__(self, evaluator, func_execution_context): def __init__(self, evaluator, func_execution_context):
super(Generator, self).__init__(evaluator, parent_context=evaluator.BUILTINS) super(Generator, self).__init__(evaluator, parent_context=evaluator.BUILTINS)
@@ -181,7 +182,7 @@ class Generator(GeneratorMixin, context.Context):
return "<%s of %s>" % (type(self).__name__, self._func_execution_context) return "<%s of %s>" % (type(self).__name__, self._func_execution_context)
class CompForContext(context.TreeContext): class CompForContext(TreeContext):
@classmethod @classmethod
def from_comp_for(cls, parent_context, comp_for): def from_comp_for(cls, parent_context, comp_for):
return cls(parent_context.evaluator, parent_context, comp_for) return cls(parent_context.evaluator, parent_context, comp_for)
@@ -244,7 +245,7 @@ class Comprehension(AbstractSequence):
parent_context = parent_context or self._defining_context parent_context = parent_context or self._defining_context
input_types = parent_context.eval_node(input_node) input_types = parent_context.eval_node(input_node)
cn = context.ContextualizedNode(parent_context, input_node) cn = ContextualizedNode(parent_context, input_node)
iterated = input_types.iterate(cn) iterated = input_types.iterate(cn)
exprlist = comp_for.children[1] exprlist = comp_for.children[1]
for i, lazy_context in enumerate(iterated): for i, lazy_context in enumerate(iterated):
@@ -739,7 +740,7 @@ class _ArrayInstance(object):
return self.py__iter__() return self.py__iter__()
class Slice(context.Context): class Slice(Context):
def __init__(self, context, start, stop, step): def __init__(self, context, start, stop, step):
super(Slice, self).__init__( super(Slice, self).__init__(
context.evaluator, context.evaluator,

View File

@@ -10,7 +10,7 @@ from jedi.evaluate import context
from jedi.evaluate import docstrings from jedi.evaluate import docstrings
from jedi.evaluate import pep0484 from jedi.evaluate import pep0484
from jedi.evaluate.filters import ParamName from jedi.evaluate.filters import ParamName
from jedi.evaluate.context import NO_CONTEXTS from jedi.evaluate.base_context import NO_CONTEXTS
def add_argument_issue(parent_context, error_name, lazy_context, message): def add_argument_issue(parent_context, error_name, lazy_context, message):

View File

@@ -27,8 +27,9 @@ from parso.python import tree
from jedi.evaluate.cache import evaluator_method_cache from jedi.evaluate.cache import evaluator_method_cache
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate.context import LazyTreeContext, NO_CONTEXTS, ContextSet from jedi.evaluate.base_context import NO_CONTEXTS, ContextSet
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import LazyTreeContext
from jedi.evaluate.context import ModuleContext
from jedi import debug from jedi import debug
from jedi import _compatibility from jedi import _compatibility
from jedi import parser_utils from jedi import parser_utils

View File

@@ -29,7 +29,7 @@ therefore the quality might not always be maximal.
from contextlib import contextmanager from contextlib import contextmanager
from jedi import debug from jedi import debug
from jedi.evaluate.context import NO_CONTEXTS from jedi.evaluate.base_context import NO_CONTEXTS
recursion_limit = 15 recursion_limit = 15

View File

@@ -20,10 +20,11 @@ from jedi.evaluate import iterable
from jedi import debug from jedi import debug
from jedi.evaluate import param from jedi.evaluate import param
from jedi.evaluate import analysis from jedi.evaluate import analysis
from jedi.evaluate.context import LazyTreeContext, ContextualizedNode, \ from jedi.evaluate.base_context import ContextualizedNode, \
NO_CONTEXTS, ContextSet NO_CONTEXTS, ContextSet
from jedi.evaluate.context import LazyTreeContext
from jedi.evaluate.context.klass import ClassContext from jedi.evaluate.context.klass import ClassContext
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
from jedi.evaluate.syntax_tree import is_string from jedi.evaluate.syntax_tree import is_string
# Now this is all part of fake tuples in Jedi. However super doesn't work on # Now this is all part of fake tuples in Jedi. However super doesn't work on

View File

@@ -8,7 +8,7 @@ from parso.python import tree
from jedi import debug from jedi import debug
from jedi import parser_utils from jedi import parser_utils
from jedi.evaluate.context import ContextSet, NO_CONTEXTS, ContextualizedNode, \ from jedi.evaluate.base_context import ContextSet, NO_CONTEXTS, ContextualizedNode, \
ContextualizedName, iterator_to_context_set, iterate_contexts ContextualizedName, iterator_to_context_set, iterate_contexts
from jedi.evaluate import compiled from jedi.evaluate import compiled
from jedi.evaluate import pep0484 from jedi.evaluate import pep0484

View File

@@ -7,7 +7,7 @@ from jedi.evaluate.site import addsitedir
from jedi._compatibility import exec_function, unicode from jedi._compatibility import exec_function, unicode
from jedi.evaluate.cache import evaluator_function_cache from jedi.evaluate.cache import evaluator_function_cache
from jedi.evaluate.compiled import CompiledObject from jedi.evaluate.compiled import CompiledObject
from jedi.evaluate.context import ContextualizedNode from jedi.evaluate.base_context import ContextualizedNode
from jedi import settings from jedi import settings
from jedi import debug from jedi import debug
from jedi.evaluate.utils import ignored from jedi.evaluate.utils import ignored
@@ -219,7 +219,7 @@ def _get_paths_from_buildout_script(evaluator, buildout_script_path):
debug.warning('Error trying to read buildout_script: %s', buildout_script_path) debug.warning('Error trying to read buildout_script: %s', buildout_script_path)
return return
from jedi.evaluate.context.module import ModuleContext from jedi.evaluate.context import ModuleContext
for path in _check_module(ModuleContext(evaluator, module_node, buildout_script_path)): for path in _check_module(ModuleContext(evaluator, module_node, buildout_script_path)):
yield path yield path