轻量级字段数据验证程序。
fivalid的Python项目详细描述
fivalid是轻量级字段数据验证程序。
功能
数据验证:
>>> from fivalid import validators >>> num = validators.Number(max=20) >>> num(10) >>> num(21) fivalid.validators.InvalidValueError: over max
数据验证和转换:
>>> from fivalid import BaseField, validators, converters >>> class PercentageField(BaseField): ... validator = validators.All( ... validators.Number(min=0, max=100), ... validators.String()) ... converter = converters.int_converter >>> field = PercentageField() >>> field('99') 99 >>> field('200') fivalid.validators.InvalidValueError: over max
结构化数据(如嵌套dict、嵌套list)验证和转换:
>>> from fivalid import StructuredFields, Dict, BaseField >>> from fivalid.validators import String, Length, All, Flag >>> from fivalid.converters import truthvalue_converter >>> class CommentField(BaseField): ... validator = All(String(), Length(max=500)) >>> class NicknameField(BaseField): ... validator = All(String(), Length(max=20)) >>> class RememberMeField(BaseField): ... validator = Flag() ... converter = truthvalue_converter >>> rule = Dict( ... {'comment': CommentField(required=True), ... 'nickname': NicknameField(), ... 'remember me': RememberMeField()} ... ) >>> stfields = StructuredFields(rule) >>> stfields({'comment': 'Hello, fivalid.', ... 'nickname': 'John Doe', ... 'remember me': '1'} ... ) {'comment': u'Hello, fivalid.', 'nickname': u'John Doe', 'remember me': True}