forked from VimPlug/jedi
Move the base Context stuff to another module to keep context free for imports.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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, \
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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__()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -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 = [
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user