コード例 #1
0
ファイル: representation.py プロジェクト: yarivkenan/jedi
 def infer_function_execution(self, function_execution):
     """
     Created to be used by inheritance.
     """
     if self.tree_node.is_generator():
         return set([iterable.Generator(self.evaluator, function_execution)])
     else:
         return function_execution.get_return_values()
コード例 #2
0
 def infer_function_execution(self, function_execution):
     """
     Created to be used by inheritance.
     """
     yield_exprs = get_yield_exprs(self.evaluator, self.tree_node)
     if yield_exprs:
         return set(
             [iterable.Generator(self.evaluator, function_execution)])
     else:
         return function_execution.get_return_values()
コード例 #3
0
 def get_return_types(self, evaluate_generator=False):
     func = self.base
     # Feed the listeners, with the params.
     for listener in func.listeners:
         listener.execute(self._get_params())
     if func.is_generator and not evaluate_generator:
         return [iterable.Generator(self._evaluator, func, self.var_args)]
     else:
         stmts = docstrings.find_return_types(self._evaluator, func)
         for r in self.returns:
             if r is not None:
                 stmts += self._evaluator.eval_statement(r)
         return stmts
コード例 #4
0
    def get_return_types(self, evaluate_generator=False):
        func = self.base
        # Feed the listeners, with the params.
        for listener in func.listeners:
            listener.execute(self._get_params())
        if func.listeners:
            # If we do have listeners, that means that there's not a regular
            # execution ongoing. In this case Jedi is interested in the
            # inserted params, not in the actual execution of the function.
            return []

        if func.is_generator and not evaluate_generator:
            return [iterable.Generator(self._evaluator, func, self.var_args)]
        else:
            stmts = list(docstrings.find_return_types(self._evaluator, func))
            for r in self.returns:
                if r is not None:
                    stmts += self._evaluator.eval_statement(r)
            return stmts
コード例 #5
0
 def py__call__(self, evaluator, params):
     if self.base.is_generator():
         return [iterable.Generator(evaluator, self, params)]
     else:
         return FunctionExecution(evaluator, self,
                                  params).get_return_types()