1
0
forked from VimPlug/jedi

Remove further clean_scope_docstring usages.

This commit is contained in:
Dave Halter
2017-04-26 09:52:18 +02:00
parent bea28fd33f
commit c124fc91ca
3 changed files with 14 additions and 13 deletions

View File

@@ -23,10 +23,8 @@ from jedi.common import unite
from jedi.evaluate import context
from jedi.evaluate.cache import memoize_default
from jedi.parser.python import parse
from jedi.parser.python.tree import search_ancestor
from jedi.common import indent_block
from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence
from jedi.parser_utils import clean_scope_docstring
DOCSTRING_PARAM_PATTERNS = [
@@ -186,22 +184,25 @@ def _execute_array_values(evaluator, array):
@memoize_default()
def infer_param(module_context, param):
def infer_param(execution_context, param):
from jedi.evaluate.instance import InstanceFunctionExecution
def eval_docstring(docstring):
return set(
p
for param_str in _search_param_in_docstr(docstring, param.name.value)
for p in _evaluate_for_statement_string(module_context, param_str)
)
module_context = execution_context.get_root_context()
func = param.get_parent_function()
if func.type == 'lambdef':
return set()
types = eval_docstring(clean_scope_docstring(func))
if func.name.value == '__init__':
cls = search_ancestor(func, 'classdef')
if cls is not None:
types |= eval_docstring(clean_scope_docstring(cls))
types = eval_docstring(execution_context.py__doc__())
if isinstance(execution_context, InstanceFunctionExecution) and \
execution_context.function_context.name.string_name == '__init__':
class_context = execution_context.instance.class_context
types |= eval_docstring(class_context.py__doc__())
return types

View File

@@ -215,9 +215,8 @@ class ExecutedParam(object):
self.string_name = param_node.name.value
def infer(self):
root_context = self._execution_context.get_root_context()
pep0484_hints = pep0484.infer_param(root_context, self._param_node)
doc_params = docstrings.infer_param(root_context, self._param_node)
pep0484_hints = pep0484.infer_param(self._execution_context, self._param_node)
doc_params = docstrings.infer_param(self._execution_context, self._param_node)
if pep0484_hints or doc_params:
return list(set(pep0484_hints) | set(doc_params))

View File

@@ -80,9 +80,10 @@ def _fix_forward_reference(context, node):
@memoize_default()
def infer_param(context, param):
def infer_param(execution_context, param):
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):