Better docstring help

This commit is contained in:
Dave Halter
2019-05-05 17:21:23 +02:00
parent c647bfa490
commit f996df087e
2 changed files with 14 additions and 9 deletions

View File

@@ -16,7 +16,7 @@ from jedi.evaluate.imports import ImportName
from jedi.evaluate.filters import ParamName from jedi.evaluate.filters import ParamName
from jedi.evaluate.context import FunctionExecutionContext, MethodContext from jedi.evaluate.context import FunctionExecutionContext, MethodContext
from jedi.evaluate.gradual.typeshed import StubOnlyModuleContext from jedi.evaluate.gradual.typeshed import StubOnlyModuleContext
from jedi.evaluate.gradual.stub_context import name_to_stub from jedi.evaluate.gradual.stub_context import name_to_stub, stub_to_actual_context_set
from jedi.api.keywords import KeywordName from jedi.api.keywords import KeywordName
@@ -702,9 +702,15 @@ class _Help(object):
See :attr:`doc` for example. See :attr:`doc` for example.
""" """
# TODO: Use all of the followed objects as output. Possibly divinding # Using the first docstring that we see.
# them by a few dashes.
for context in self._get_contexts(fast=fast): for context in self._get_contexts(fast=fast):
return context.py__doc__(include_call_signature=not raw) doc = context.py__doc__(include_call_signature=not raw)
if doc:
return doc
if not context.is_stub():
for c in stub_to_actual_context_set(context):
doc = c.py__doc__(include_call_signature=not raw)
if doc:
return doc
return '' return ''

View File

@@ -151,15 +151,14 @@ def goto_non_stub(parent_context, tree_name):
def stub_to_actual_context_set(stub_context, ignore_compiled=False): def stub_to_actual_context_set(stub_context, ignore_compiled=False):
stub_module = stub_context.get_root_context()
if not stub_module.is_stub():
return ContextSet([stub_context])
qualified_names = stub_context.get_qualified_names() qualified_names = stub_context.get_qualified_names()
if qualified_names is None: if qualified_names is None:
return NO_CONTEXTS return NO_CONTEXTS
stub_module = stub_context.get_root_context()
if not stub_module.is_stub():
return ContextSet([stub_context])
assert isinstance(stub_module, StubOnlyModuleContext), stub_module assert isinstance(stub_module, StubOnlyModuleContext), stub_module
non_stubs = stub_module.non_stub_context_set non_stubs = stub_module.non_stub_context_set
if ignore_compiled: if ignore_compiled: