一个用于数据验证的简单、快速、可扩展的python库。
validr的Python项目详细描述
有效期
一个用于数据验证的简单、快速、可扩展的python库。
- 简单易读的模式
- 比jsonschema快10倍, 比schematics快40倍
- 可以验证和序列化任何对象
- 易于创建自定义验证器
- 准确友好的错误消息
“安全、经济、环保”组织
- 图式
- 比{a3}10倍,比{a4}40倍
- 够
- 易拓展自义校
- 我是说
概述
fromvalidrimportT,modelclass,asdict@modelclassclassModel:"""Base Model"""classPerson(Model):name=T.str.maxlen(16).desc('at most 16 chars')website=T.url.optional.desc('website is optional')guyskk=Person(name='guyskk',website='https://github.com/guyskk')print(asdict(guyskk))
安装
注意:仅支持Python3.4+
pip install validr
文档
https://github.com/guyskk/validr/wiki
性能
travis ci中的基准结果:
--------------------------timeits---------------------------
voluptuous:default 10000 loops cost 0.368s
schema:default 1000 loops cost 0.318s
json:loads-dumps 100000 loops cost 1.380s
validr:default 100000 loops cost 0.719s
validr:model 100000 loops cost 1.676s
jsonschema:draft3 10000 loops cost 0.822s
jsonschema:draft4 10000 loops cost 0.785s
schematics:default 1000 loops cost 0.792s
---------------------------scores---------------------------
voluptuous:default 375
schema:default 43
json:loads-dumps 1000
validr:default 1918
validr:model 823
jsonschema:draft3 168
jsonschema:draft4 176
schematics:default 17
开发
validr是由Cython实现的,从v0.14.0开始,它是5x 比最初实现的纯python更快。
设置:
最好使用virtualenv或 类似的工具可以创建独立的python环境进行开发。
之后,安装从属项:
./bootstrap.sh
构建、测试和基准测试:
inv build
inv test
inv benchmark
许可证
Anti-996许可证