1
0
forked from VimPlug/jedi

better separation pep0484 code and py__annotation__() function

This commit is contained in:
Claude
2015-12-14 12:10:00 +01:00
parent be399c81c3
commit 576fdf8106
2 changed files with 19 additions and 11 deletions

View File

@@ -49,6 +49,7 @@ from jedi.evaluate import compiled
from jedi.evaluate import recursion
from jedi.evaluate import iterable
from jedi.evaluate import docstrings
from jedi.evaluate import pep0484
from jedi.evaluate import helpers
from jedi.evaluate import param
from jedi.evaluate import flow_analysis
@@ -585,14 +586,13 @@ class Function(use_metaclass(CachedMetaClass, Wrapper)):
parser_func = self.base
return_annotation = parser_func.annotation()
if return_annotation:
dct = {'return': self._evaluator.eval_element(return_annotation)}
dct = {'return': return_annotation}
else:
dct = {}
for function_param in parser_func.params:
param_annotation = function_param.annotation()
if param_annotation:
dct[function_param.name.value] = \
self._evaluator.eval_element(param_annotation)
if param_annotation is not None:
dct[function_param.name.value] = param_annotation
return dct
def py__class__(self):
@@ -654,9 +654,7 @@ class FunctionExecution(Executed):
else:
returns = self.returns
types = set(docstrings.find_return_types(self._evaluator, func))
annotations = func.py__annotations__().get("return", [])
types |= set(chain.from_iterable(
self._evaluator.execute(d) for d in annotations))
types |= set(pep0484.find_return_types(self._evaluator, func))
for r in returns:
check = flow_analysis.break_check(self._evaluator, self, r)