From b2294a8a562ce7f9212642d91cfc5d9cd3cda315 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Sun, 19 Aug 2012 10:02:29 -0500 Subject: [PATCH] IS_EXPR_environment.patch, fixed issue 938, thanks Anthony --- VERSION | 2 +- gluon/validators.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index ef7c23d6..66ceca9c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-08-18 20:11:01) dev +Version 2.00.0 (2012-08-19 10:02:26) dev diff --git a/gluon/validators.py b/gluon/validators.py index 4d04f421..27fae504 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -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))