A simple, fast, extensible python library for data validation.
Project description
Validr
A simple, fast, extensible python library for data validation.
- Simple and readable schema
- 10X faster than jsonschema, 40X faster than schematics
- Can validate and serialize any object
- Easy to create custom validators
- Accurate and friendly error messages
简单,快速,可拓展的数据校验库。
- 简洁,易读的 Schema
- 比 jsonschema 快 10 倍,比 schematics 快 40 倍
- 能够校验&序列化任意类型对象
- 易于拓展自定义校验器
- 准确友好的错误提示
Overview
from validr import T, modelclass, asdict
@modelclass
class Model:
"""Base Model"""
class Person(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))
Install
Note: Only support python 3.4+
pip install validr
Document
https://github.com/guyskk/validr/wiki
Performance
benchmark result in 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
Develop
Validr is implemented by Cython since v0.14.0, it's 5X faster than original pure python implemented.
setup:
It's better to use virtualenv or similar tools to create isolated Python environment for develop.
After that, install dependencys:
./bootstrap.sh
build, test and benchmark:
inv build
inv test
inv benchmark
License
Anti-996 License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
validr-1.1.1.tar.gz
(198.6 kB
view details)
File details
Details for the file validr-1.1.1.tar.gz.
File metadata
- Download URL: validr-1.1.1.tar.gz
- Upload date:
- Size: 198.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fc209dc364327c95cc05179cc2915ffcfc3c808159c0b34ddf8743ee42d56e6
|
|
| MD5 |
524e9c03bc242be21d6b7d942818e8eb
|
|
| BLAKE2b-256 |
1080f3c6066760bf5d994a912a2729ba755c67b08bb239f3d30997bf69c3d675
|