forked from VimPlug/jedi
Remove further clean_scope_docstring usages.
This commit is contained in:
@@ -23,10 +23,8 @@ from jedi.common import unite
|
|||||||
from jedi.evaluate import context
|
from jedi.evaluate import context
|
||||||
from jedi.evaluate.cache import memoize_default
|
from jedi.evaluate.cache import memoize_default
|
||||||
from jedi.parser.python import parse
|
from jedi.parser.python import parse
|
||||||
from jedi.parser.python.tree import search_ancestor
|
|
||||||
from jedi.common import indent_block
|
from jedi.common import indent_block
|
||||||
from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence
|
from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence
|
||||||
from jedi.parser_utils import clean_scope_docstring
|
|
||||||
|
|
||||||
|
|
||||||
DOCSTRING_PARAM_PATTERNS = [
|
DOCSTRING_PARAM_PATTERNS = [
|
||||||
@@ -186,22 +184,25 @@ def _execute_array_values(evaluator, array):
|
|||||||
|
|
||||||
|
|
||||||
@memoize_default()
|
@memoize_default()
|
||||||
def infer_param(module_context, param):
|
def infer_param(execution_context, param):
|
||||||
|
from jedi.evaluate.instance import InstanceFunctionExecution
|
||||||
|
|
||||||
def eval_docstring(docstring):
|
def eval_docstring(docstring):
|
||||||
return set(
|
return set(
|
||||||
p
|
p
|
||||||
for param_str in _search_param_in_docstr(docstring, param.name.value)
|
for param_str in _search_param_in_docstr(docstring, param.name.value)
|
||||||
for p in _evaluate_for_statement_string(module_context, param_str)
|
for p in _evaluate_for_statement_string(module_context, param_str)
|
||||||
)
|
)
|
||||||
|
module_context = execution_context.get_root_context()
|
||||||
func = param.get_parent_function()
|
func = param.get_parent_function()
|
||||||
if func.type == 'lambdef':
|
if func.type == 'lambdef':
|
||||||
return set()
|
return set()
|
||||||
|
|
||||||
types = eval_docstring(clean_scope_docstring(func))
|
types = eval_docstring(execution_context.py__doc__())
|
||||||
if func.name.value == '__init__':
|
if isinstance(execution_context, InstanceFunctionExecution) and \
|
||||||
cls = search_ancestor(func, 'classdef')
|
execution_context.function_context.name.string_name == '__init__':
|
||||||
if cls is not None:
|
class_context = execution_context.instance.class_context
|
||||||
types |= eval_docstring(clean_scope_docstring(cls))
|
types |= eval_docstring(class_context.py__doc__())
|
||||||
|
|
||||||
return types
|
return types
|
||||||
|
|
||||||
|
|||||||
@@ -215,9 +215,8 @@ class ExecutedParam(object):
|
|||||||
self.string_name = param_node.name.value
|
self.string_name = param_node.name.value
|
||||||
|
|
||||||
def infer(self):
|
def infer(self):
|
||||||
root_context = self._execution_context.get_root_context()
|
pep0484_hints = pep0484.infer_param(self._execution_context, self._param_node)
|
||||||
pep0484_hints = pep0484.infer_param(root_context, self._param_node)
|
doc_params = docstrings.infer_param(self._execution_context, self._param_node)
|
||||||
doc_params = docstrings.infer_param(root_context, self._param_node)
|
|
||||||
if pep0484_hints or doc_params:
|
if pep0484_hints or doc_params:
|
||||||
return list(set(pep0484_hints) | set(doc_params))
|
return list(set(pep0484_hints) | set(doc_params))
|
||||||
|
|
||||||
|
|||||||
@@ -80,9 +80,10 @@ def _fix_forward_reference(context, node):
|
|||||||
|
|
||||||
|
|
||||||
@memoize_default()
|
@memoize_default()
|
||||||
def infer_param(context, param):
|
def infer_param(execution_context, param):
|
||||||
annotation = param.annotation
|
annotation = param.annotation
|
||||||
return _evaluate_for_annotation(context, annotation)
|
module_context = execution_context.get_root_context()
|
||||||
|
return _evaluate_for_annotation(module_context, annotation)
|
||||||
|
|
||||||
|
|
||||||
def py__annotations__(funcdef):
|
def py__annotations__(funcdef):
|
||||||
|
|||||||
Reference in New Issue
Block a user