Perfect (almost ;-), thanks a lot!

for future reference, the attribute name (key) was needed 
in create_validator(cls) to access the correct validate method:

    @staticmethod            
    def _create_validator(key, cls): 
        def validate(target, value, oldvalue, initiator):
            if not cls._type_[key].validate(value):
                raise ValueError("incorrect value '%s' for '%s' in '%s'" % 
(str(value), key, cls.__name__))
        return validate

    def create_validators(self):      
        for cls in self.itervalues():
            for fld in cls._type_.fields():
                key = fld.key()
                attribute = getattr(cls, key)
                event.listen(attribute, "set", self._create_validator(key, 
cls))
                debug_print('created validator for %s in %s' % (key, 
cls.__name__))

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sqlalchemy/-/I-TQaC4YCqYJ.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to