def infer_callfunc(self, context=None):
 callcontext = context.clone()
 callcontext.callcontext = CallContext(self.args, self.starargs, self.kwargs)
 callcontext.boundnode = None
 for callee in self.func.infer(context):
  if (callee is YES):
   (yield callee)
   continue
  try:
   if hasattr(callee, 'infer_call_result'):
    for infered in callee.infer_call_result(self, callcontext):
     (yield infered)
  except InferenceError:
   continue

def infer_callfunc ( self , context = None ) : callcontext = context . clone ( ) callcontext . callcontext = CallContext ( self . args , self . starargs , self . kwargs ) callcontext . boundnode = None for callee in self . func . infer ( context ) : if ( callee is YES ) : ( yield callee ) continue try : if hasattr ( callee , 'infer_call_result' ) : for infered in callee . infer_call_result ( self , callcontext ) : ( yield infered ) except InferenceError : continue
infer a callfunc node by trying to guess what the function returns .