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:
5f93dc2
)
INumberDef: Pre-int-round static values.
author
Joe Wreschnig
<joe.wreschnig@gmail.com>
Wed, 17 Mar 2010 04:52:22 +0000
(21:52 -0700)
committer
Joe Wreschnig
<joe.wreschnig@gmail.com>
Wed, 17 Mar 2010 04:52:22 +0000
(21:52 -0700)
bulletml/expr.py
patch
|
blob
|
history
diff --git
a/bulletml/expr.py
b/bulletml/expr.py
index
3c80b06
..
fc71d0d
100644
(file)
--- a/
bulletml/expr.py
+++ b/
bulletml/expr.py
@@
-43,21
+43,21
@@
class NumberDef(object):
self.__expr = expr.replace("$rand", "random()").replace("$rank", "rank")
try:
try:
self.__expr = expr.replace("$rand", "random()").replace("$rank", "rank")
try:
try:
- self._
_
value = eval(self.__expr, dict(__builtins__={}))
+ self._value = eval(self.__expr, dict(__builtins__={}))
except NameError:
variables = dict(rank=1, params=[0] * 99)
value = eval(self.__expr, self.GLOBALS, variables)
if not isinstance(value, (int, float)):
raise TypeError(expr)
except NameError:
variables = dict(rank=1, params=[0] * 99)
value = eval(self.__expr, self.GLOBALS, variables)
if not isinstance(value, (int, float)):
raise TypeError(expr)
- self._
_
value = None
+ self._value = None
except Exception:
raise ExprError(expr)
self.__expr = compile(self.__expr, __file__, "eval")
def __call__(self, params, rank):
"""Evaluate the expression and return its value."""
except Exception:
raise ExprError(expr)
self.__expr = compile(self.__expr, __file__, "eval")
def __call__(self, params, rank):
"""Evaluate the expression and return its value."""
- if self._
_
value is not None:
- return self._
_
value
+ if self._value is not None:
+ return self._value
variables = { 'rank': rank, 'params': params }
return eval(self.__expr, self.GLOBALS, variables)
variables = { 'rank': rank, 'params': params }
return eval(self.__expr, self.GLOBALS, variables)
@@
-66,5
+66,12
@@
class NumberDef(object):
class INumberDef(NumberDef):
"""A NumberDef, but returns rounded integer results."""
class INumberDef(NumberDef):
"""A NumberDef, but returns rounded integer results."""
+ def __init__(self, expr):
+ super(INumberDef, self).__init__(expr)
+ if self._value is not None:
+ self._value = int(round(self._value))
+
def __call__(self, params, rank):
def __call__(self, params, rank):
+ if self._value is not None:
+ return self._value
return int(round(super(INumberDef, self).__call__(params, rank)))
return int(round(super(INumberDef, self).__call__(params, rank)))