def _print_Derivative(self, expr): if not isinstance(expr.args[1], (_AppliedUndef, sp.Symbol)): error("Can only print Derivative code with a single dependent "\ "variabe. Got: {0}".format(sympycode(expr.args[1]))) if isinstance(expr.args[0], _AppliedUndef): return "d%s_d%s" % (expr.args[0].func.__name__, "_".join(\ self._print(arg) for arg in expr.args[1:])) return _StrPrinter._print_Derivative(self, expr)
def _print_Float(self, expr): # If not finite we use parent printer if expr.is_zero: return "0" if not expr.is_finite: return _StrPrinter._print_Float(self, expr) return str(float(expr))
def test_empty_printer(): str_printer = StrPrinter() assert str_printer.emptyPrinter("foo") == "foo" assert str_printer.emptyPrinter(x*y) == "x*y" assert str_printer.emptyPrinter(32) == "32"
def _print_Float(self, expr): f_str = _StrPrinter._print_Float(self, expr) return f_str + self._float_postfix
def __init__(self, namespace=""): assert(namespace in ["", "math", "np", "numpy", "ufl"]) self._namespace = namespace if not namespace else namespace + "." _StrPrinter.__init__(self, settings=dict(order=_order))