IS_EXPR_environment.patch, fixed issue 938, thanks Anthony

This commit is contained in:
mdipierro
2012-08-19 10:02:29 -05:00
parent 8ef2931239
commit b2294a8a56
2 changed files with 6 additions and 5 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.00.0 (2012-08-18 20:11:01) dev
Version 2.00.0 (2012-08-19 10:02:26) dev
+5 -4
View File
@@ -213,14 +213,15 @@ class IS_EXPR(Validator):
('2', 'invalid expression')
"""
def __init__(self, expression, error_message='invalid expression'):
def __init__(self, expression, error_message='invalid expression', environment=None):
self.expression = expression
self.error_message = error_message
self.environment = environment or {}
def __call__(self, value):
environment = {'value': value}
exec '__ret__=' + self.expression in environment
if environment['__ret__']:
self.environment.update(value=value)
exec '__ret__=' + self.expression in self.environment
if self.environment['__ret__']:
return (value, None)
return (value, translate(self.error_message))