"""
GLOBALS = dict(random=random.random, __builtins__={})
+
def __init__(self, expr):
try:
- expr = expr.__original
+ expr = expr.string
except AttributeError:
pass
- self.__original = expr
+ self.string = expr
repl = lambda match: "params[%d]" % (int(match.group()[1:]) - 1)
expr = re.sub(r"\$\d+", repl, expr.lower())
self.__expr = expr.replace("$rand", "random()").replace("$rank", "rank")
return eval(self.__expr, self.GLOBALS, variables)
def __repr__(self):
- return "%s(%r)" % (type(self).__name__, self.__original)
+ return "%s(%r)" % (type(self).__name__, self.string)
class INumberDef(NumberDef):
"""A NumberDef, but returns rounded integer results."""