projects
/
python-bulletml.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4bb0077
)
NumberDef: Store 'expr' field, a string for things that will get evaled but a static...
author
Joe Wreschnig
<joe.wreschnig@gmail.com>
Fri, 19 Mar 2010 04:33:46 +0000
(21:33 -0700)
committer
Joe Wreschnig
<joe.wreschnig@gmail.com>
Fri, 19 Mar 2010 04:33:46 +0000
(21:33 -0700)
bulletml/expr.py
patch
|
blob
|
history
diff --git
a/bulletml/expr.py
b/bulletml/expr.py
index
fc71d0d
..
b72fa22
100644
(file)
--- a/
bulletml/expr.py
+++ b/
bulletml/expr.py
@@
-37,7
+37,7
@@
class NumberDef(object):
expr = expr.string
except AttributeError:
pass
expr = expr.string
except AttributeError:
pass
- self.string =
expr
+ self.string =
str(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")
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")
@@
-50,6
+50,9
@@
class NumberDef(object):
if not isinstance(value, (int, float)):
raise TypeError(expr)
self._value = None
if not isinstance(value, (int, float)):
raise TypeError(expr)
self._value = None
+ self.expr = self.string
+ else:
+ self.expr = self._value
except Exception:
raise ExprError(expr)
self.__expr = compile(self.__expr, __file__, "eval")
except Exception:
raise ExprError(expr)
self.__expr = compile(self.__expr, __file__, "eval")
@@
-62,7
+65,7
@@
class NumberDef(object):
return eval(self.__expr, self.GLOBALS, variables)
def __repr__(self):
return eval(self.__expr, self.GLOBALS, variables)
def __repr__(self):
- return "%s(%r)" % (type(self).__name__, self.
string
)
+ return "%s(%r)" % (type(self).__name__, self.
expr
)
class INumberDef(NumberDef):
"""A NumberDef, but returns rounded integer results."""
class INumberDef(NumberDef):
"""A NumberDef, but returns rounded integer results."""