expr = expr.string
except AttributeError:
pass
+ try:
+ if "__" in expr:
+ # nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
+ raise ExprError(expr)
+ except TypeError:
+ pass
self.string = expr = str(expr)
repl = lambda match: "params[%d]" % (int(match.group()[1:]) - 1)
expr = re.sub(r"\$\d+", repl, expr.lower())