Nice, ugh?
"""
-__ALL__ = ('Field', 'ValidatedClass')
+__all__ = ('Field', 'ValidatedClass')
from formencode import Invalid
from formencode.schema import Schema
-from formencode.validators import FancyValidator, OneOf, CIDR, Int
+from formencode.validators import FancyValidator
# FIXME not thread safe (use threadlocal?)
# This is a counter to preserve the order of declaration of fields (class
name = Field(formencode.validators.String(not_empty=True))
age = Field(formencode.validators.Int(max=110, if_empty=None,
if_missing=None))
+ def __init__(self, *args, **kwargs):
+ ValidatedClass.__init__(self, *args, **kwargs)
+ self.a_dict = dict()
# Some global validation after individual fields validation
def chained_validator(self, fields, state):
if 'Jr' in fields['name'] and fields['age'] > 25:
# Use the order of fields declaration
assert t.name == 'Graham'
+ # we can use regular fields too
+ t.a_dict.update(dict(python=True))
+ assert 'python' in t.a_dict
+ assert t.a_dict['python'] is True
+
t = Test('Graham', 20)
assert t.name == 'Graham' and t.age == 20