1
0
forked from VimPlug/jedi

StubModuleContext is now a wrapped context

This commit is contained in:
Dave Halter
2018-12-05 21:33:23 +01:00
parent 3d4f241129
commit 2406c8374f
2 changed files with 81 additions and 94 deletions

View File

@@ -14,6 +14,7 @@ from jedi.evaluate.context import ModuleContext, FunctionContext, \
MethodContext, ClassContext
from jedi.evaluate.context.function import FunctionMixin
from jedi.evaluate.context.klass import ClassMixin
from jedi.evaluate.context.module import ModuleMixin
from jedi.evaluate.context.typing import TypingModuleFilterWrapper, \
TypingModuleName
from jedi.evaluate.compiled.context import CompiledObject, CompiledName
@@ -87,14 +88,7 @@ def _merge_modules(context_set, stub_context):
for context in context_set:
if isinstance(context, ModuleContext):
yield StubModuleContext(
context.evaluator,
stub_context,
context.tree_node,
path=context._path,
string_names=context._string_names,
code_lines=context.code_lines
)
yield StubModuleContext.create_cached(context.evaluator, context, stub_context)
else:
# TODO do we want this? This includes compiled?!
yield stub_context
@@ -386,15 +380,6 @@ class StubFilter(AbstractFilter):
)
class _MixedStubContextMixin(object):
"""
Mixes the actual contexts with the stub module contexts.
"""
def __init__(self, evaluator, stub_context, *args, **kwargs):
super(_MixedStubContextMixin, self).__init__(evaluator, *args, **kwargs)
self.stub_context = stub_context
class _StubContextFilterMixin(object):
def get_filters(self, search_global=False, until_position=None,
origin_scope=None, **kwargs):
@@ -414,11 +399,10 @@ class _StubContextFilterMixin(object):
yield f
class StubModuleContext(_MixedStubContextMixin, _StubContextFilterMixin, ModuleContext):
@property
def _wrapped_context(self):
# TODO this is stupid.
return super(_StubContextFilterMixin, self)
class StubModuleContext(_StubContextFilterMixin, ModuleMixin, ContextWrapper):
def __init__(self, context, stub_context):
super(StubModuleContext, self).__init__(context)
self.stub_context = stub_context
class StubClassContext(_StubContextFilterMixin, ClassMixin, ContextWrapper):