Working with CompiledObject in stubs is now possible

This commit is contained in:
Dave Halter
2018-08-08 18:57:05 +02:00
parent 1ade520ac0
commit facbf61133
2 changed files with 13 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ from jedi.evaluate.base_context import ContextSet, iterator_to_context_set
from jedi.evaluate.filters import AbstractTreeName, ParserTreeFilter, \
TreeNameDefinition
from jedi.evaluate.context import ModuleContext, FunctionContext, ClassContext
from jedi.evaluate.compiled import CompiledObject
from jedi.evaluate.syntax_tree import tree_name_to_contexts
from jedi.evaluate.utils import to_list
@@ -127,6 +128,11 @@ class TypeshedPlugin(BasePlugin):
else parent_module_context,
sys_path
)
# Don't use CompiledObjects, they are just annoying and don't
# really help with anything. Just use the stub files instead.
context_set = ContextSet.from_iterable(
c for c in context_set if not isinstance(c, CompiledObject)
)
import_name = import_names[-1]
map_ = None
if len(import_names) == 1 and import_name != 'typing':

View File

@@ -79,3 +79,10 @@ def test_method(Script):
context = def_._name._context
assert isinstance(context, CompiledInstance)
assert context.class_context.py__name__() == 'str'
def test_math(Script):
def_, = Script('import math; math.acos()').goto_definitions()
assert def_.name == 'float'
context = def_._name._context
assert context