diff --git a/jedi/api/classes.py b/jedi/api/classes.py index c67e0b97..bbb86bc2 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -18,7 +18,7 @@ from jedi.evaluate.filters import ParamName from jedi.evaluate.imports import ImportName from jedi.evaluate.context import instance from jedi.evaluate.context.function import FunctionContext, FunctionExecutionContext -from jedi.evaluate.context.klass import ClassContext +from jedi.evaluate.context import ClassContext from jedi.api.keywords import KeywordName diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 54be1fbd..3ea594c8 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -84,7 +84,7 @@ from jedi.evaluate.context.function import FunctionContext from jedi.evaluate.syntax_tree import eval_trailer, eval_expr_stmt, \ eval_node, check_tuple_assignments from jedi import parser_utils -from jedi.evaluate.context.klass import ClassContext +from jedi.evaluate.context import ClassContext class Evaluator(object): diff --git a/jedi/evaluate/context/__init__.py b/jedi/evaluate/context/__init__.py index db2f87fb..12dc4780 100644 --- a/jedi/evaluate/context/__init__.py +++ b/jedi/evaluate/context/__init__.py @@ -1,3 +1,4 @@ from jedi.evaluate.context.lazy import AbstractLazyContext, LazyKnownContext, \ LazyKnownContexts, LazyTreeContext, LazyUnknownContext, get_merged_lazy_context from jedi.evaluate.context.module import ModuleContext +from jedi.evaluate.context.klass import ClassContext diff --git a/jedi/evaluate/context/klass.py b/jedi/evaluate/context/klass.py index 4686e22f..a5258214 100644 --- a/jedi/evaluate/context/klass.py +++ b/jedi/evaluate/context/klass.py @@ -40,12 +40,10 @@ py__doc__(include_call_signature: Returns the docstring for a context. from jedi._compatibility import use_metaclass from jedi.evaluate.cache import evaluator_method_cache, CachedMetaClass from jedi.evaluate import compiled -from jedi.evaluate import param from jedi.evaluate.filters import ParserTreeFilter, TreeNameDefinition, \ ContextName, AnonymousInstanceParamName from jedi.evaluate.base_context import ContextSet, iterator_to_context_set, \ TreeContext -from jedi.evaluate.context import LazyKnownContext def apply_py__get__(context, base_context): @@ -136,9 +134,11 @@ class ClassContext(use_metaclass(CachedMetaClass, TreeContext)): def py__bases__(self): arglist = self.tree_node.get_super_arglist() if arglist: + from jedi.evaluate import param args = param.TreeArguments(self.evaluator, self, arglist) return [value for key, value in args.unpack() if key is None] else: + from jedi.evaluate.context import LazyKnownContext return [LazyKnownContext(compiled.create(self.evaluator, object))] def py__call__(self, params): diff --git a/jedi/evaluate/docstrings.py b/jedi/evaluate/docstrings.py index b7d600e0..9b60ca00 100644 --- a/jedi/evaluate/docstrings.py +++ b/jedi/evaluate/docstrings.py @@ -23,7 +23,6 @@ from parso import parse from jedi._compatibility import u from jedi.evaluate.utils import indent_block from jedi.evaluate.cache import evaluator_method_cache -from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence from jedi.evaluate.base_context import iterator_to_context_set, ContextSet, \ NO_CONTEXTS from jedi.evaluate.context import LazyKnownContexts @@ -235,6 +234,7 @@ def _execute_array_values(evaluator, array): Tuples indicate that there's not just one return value, but the listed ones. `(str, int)` means that it returns a tuple with both types. """ + from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence if isinstance(array, SequenceLiteralContext): values = [] for lazy_context in array.py__iter__(): diff --git a/jedi/evaluate/stdlib.py b/jedi/evaluate/stdlib.py index 540a3cb3..8eb3c772 100644 --- a/jedi/evaluate/stdlib.py +++ b/jedi/evaluate/stdlib.py @@ -22,9 +22,7 @@ from jedi.evaluate import param from jedi.evaluate import analysis from jedi.evaluate.base_context import ContextualizedNode, \ NO_CONTEXTS, ContextSet -from jedi.evaluate.context import LazyTreeContext -from jedi.evaluate.context.klass import ClassContext -from jedi.evaluate.context import ModuleContext +from jedi.evaluate.context import ClassContext, ModuleContext, LazyTreeContext from jedi.evaluate.syntax_tree import is_string # Now this is all part of fake tuples in Jedi. However super doesn't work on diff --git a/jedi/evaluate/syntax_tree.py b/jedi/evaluate/syntax_tree.py index f36dad9b..130db855 100644 --- a/jedi/evaluate/syntax_tree.py +++ b/jedi/evaluate/syntax_tree.py @@ -18,7 +18,7 @@ from jedi.evaluate import analysis from jedi.evaluate import iterable from jedi.evaluate import imports from jedi.evaluate import param -from jedi.evaluate.context.klass import ClassContext +from jedi.evaluate.context import ClassContext from jedi.evaluate.context.function import FunctionContext from jedi.evaluate.context.instance import TreeInstance, CompiledInstance from jedi.evaluate.finder import NameFinder