@staticmethod
    def Add(expr, assumptions):
        if expr.is_number:
            return AskImaginaryHandler._number(expr, assumptions)

        reals = 0
        for arg in expr.args:
            if ask(Q.imaginary(arg), assumptions):
                pass
            elif ask(Q.real(arg), assumptions):
                reals += 1
            else:
                break
        else:
            if reals == 0:
                return True
            if reals == 1 or (len(expr.args) == reals):
                # two reals could sum 0 thus giving an imaginary
                return False
Return an iterator over keys.
dataset/ETHPy150Open sympy/sympy/sympy/assumptions/handlers/sets.py/AskImaginaryHandler.Add--crossover with--dataset/ETHPy150Open babble/babble/include/jython/Lib/mailbox.py/Mailbox.iterkeys