一个用于数据验证的简单、快速、可扩展的python库。

validr的Python项目详细描述


有效期

travis-cicodecov

一个用于数据验证的简单、快速、可扩展的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许可证

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Selenium Java查找筛选器窗格“铅笔图标”的元素时出现问题   分布式缓存l2上使用infinispan和hibernate的java连接锁   使用Java的DOM XML API解析XML中的符号和   java是解析和操作字符串的有效方法   java发布NewRelicMeterRegistry时如何过滤仪表   多维数组在java中读取文件后将数据值分组   java如何将httpClient配置为jsoup   java BreakIterator在Android中是如何工作的?   找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装   Jlabel调整java大小   调试如何在VScode中的java类依赖项中设置断点   java正在获取文件夹名,而不是。mp3文件{Android}   java如何将从DiffieHellman类生成的AES密钥添加到使用该密钥的类