diff --git a/AUTHORS.txt b/AUTHORS.txt index b74f628a..3b740ac5 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -52,5 +52,6 @@ Tobias Rzepka (@TobiasRzepka) micbou (@micbou) Dima Gerasimov (@karlicoss) Max Woerner Chase (@mwchase) +Johannes Maria Frank (@jmfrank63) Note: (@user) means a github user name. diff --git a/jedi/evaluate/gradual/conversion.py b/jedi/evaluate/gradual/conversion.py index adae4d96..8b56354d 100644 --- a/jedi/evaluate/gradual/conversion.py +++ b/jedi/evaluate/gradual/conversion.py @@ -40,7 +40,9 @@ def _stub_to_python_context_set(stub_context, ignore_compiled=False): def _infer_from_stub(stub_module, qualified_names, ignore_compiled): - assert isinstance(stub_module, StubModuleContext), stub_module + from jedi.evaluate.compiled.mixed import MixedObject + assert isinstance(stub_module, StubModuleContext) or \ + isinstance(stub_module, MixedObject), stub_module non_stubs = stub_module.non_stub_context_set if ignore_compiled: non_stubs = non_stubs.filter(lambda c: not c.is_compiled()) diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 63761927..46056706 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -8,7 +8,7 @@ import pytest import jedi from jedi._compatibility import is_py3, py_version from jedi.evaluate.compiled import mixed - +from importlib import import_module if py_version > 30: def exec_(source, global_map): @@ -439,3 +439,9 @@ def test__wrapped__(): c, = jedi.Interpreter('syslogs_to_df', [locals()]).completions() # Apparently the function starts on the line where the decorator starts. assert c.line == syslogs_to_df.__wrapped__.__code__.co_firstlineno + 1 + +@pytest.mark.parametrize('module_name', ['sys', 'time']) +def test_core_module_completes(module_name): + module = import_module(module_name) + assert jedi.Interpreter(module_name + '.\n', [locals()]).completions() +