class NonRelationalOpPrinter(lambdarepr.LambdaPrinter):
'''
>>> from structures import symbolic
>>> for op in ['Eq', 'Ne', 'Gt', 'Lt', 'Ge', 'Le']:
... sympy.sympify((symbolic.NonRelationalOpPrinter().doprint(sympy.sympify('%s(%s(a, b), c)' % (op, op)))))
(a == b) == c
(a != b) != c
(a > b) > c
(a < b) < c
(a >= b) >= c
(a <= b) <= c
'''
def _printRelation(self, expr, name):
return '%s(%s)' % (name, ", ".join(map(self._print, expr.args)))
def _print_Equality(self, expr):
return self._printRelation(expr, 'Equality')
def _print_Unequality(self, expr):
return self._printRelation(expr, 'Unequality')
def _print_GreaterThan(self, expr):
return self._printRelation(expr, 'GreaterThan')
def _print_LessThan(self, expr):
return self._printRelation(expr, 'LessThan')
def _print_StrictGreaterThan(self, expr):
return self._printRelation(expr, 'StrictGreaterThan')
def _print_StrictLessThan(self, expr):
return self._printRelation(expr, 'StrictLessThan')