{ "info": { "author": "guyskk", "author_email": "guyskk@qq.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Validr\n\n[![travis-ci](https://api.travis-ci.org/guyskk/validr.svg)](https://travis-ci.org/guyskk/validr) [![codecov](https://codecov.io/gh/guyskk/validr/branch/master/graph/badge.svg)](https://codecov.io/gh/guyskk/validr)\n\nA simple, fast, extensible python library for data validation.\n\n- Simple and readable schema\n- 10X faster than [jsonschema](https://github.com/Julian/jsonschema),\n 40X faster than [schematics](https://github.com/schematics/schematics)\n- Can validate and serialize any object\n- Easy to create custom validators\n- Accurate and friendly error messages\n\n\u7b80\u5355\uff0c\u5feb\u901f\uff0c\u53ef\u62d3\u5c55\u7684\u6570\u636e\u6821\u9a8c\u5e93\u3002\n\n- \u7b80\u6d01\uff0c\u6613\u8bfb\u7684 Schema\n- \u6bd4 [jsonschema](https://github.com/Julian/jsonschema) \u5feb 10 \u500d\uff0c\u6bd4 [schematics](https://github.com/schematics/schematics) \u5feb 40 \u500d\n- \u80fd\u591f\u6821\u9a8c&\u5e8f\u5217\u5316\u4efb\u610f\u7c7b\u578b\u5bf9\u8c61\n- \u6613\u4e8e\u62d3\u5c55\u81ea\u5b9a\u4e49\u6821\u9a8c\u5668\n- \u51c6\u786e\u53cb\u597d\u7684\u9519\u8bef\u63d0\u793a\n\n## Overview\n\n```python\nfrom validr import T, modelclass, asdict\n\n@modelclass\nclass Model:\n \"\"\"Base Model\"\"\"\n\nclass Person(Model):\n name=T.str.maxlen(16).desc('at most 16 chars')\n website=T.url.optional.desc('website is optional')\n\nguyskk = Person(name='guyskk', website='https://github.com/guyskk')\nprint(asdict(guyskk))\n```\n\n## Install\n\nNote: Only support python 3.4+\n\n pip install validr\n\n## Document\n\nhttps://github.com/guyskk/validr/wiki\n\n## Performance\n\nbenchmark result in Travis-CI:\n\n```\n--------------------------timeits---------------------------\n voluptuous:default 10000 loops cost 0.368s\n schema:default 1000 loops cost 0.318s\n json:loads-dumps 100000 loops cost 1.380s\n validr:default 100000 loops cost 0.719s\n validr:model 100000 loops cost 1.676s\n jsonschema:draft3 10000 loops cost 0.822s\n jsonschema:draft4 10000 loops cost 0.785s\n schematics:default 1000 loops cost 0.792s\n---------------------------scores---------------------------\n voluptuous:default 375\n schema:default 43\n json:loads-dumps 1000\n validr:default 1918\n validr:model 823\n jsonschema:draft3 168\n jsonschema:draft4 176\n schematics:default 17\n```\n\n## Develop\n\nValidr is implemented by [Cython](http://cython.org/) since v0.14.0, it's 5X\nfaster than original pure python implemented.\n\n**setup**:\n\nIt's better to use [virtualenv](https://virtualenv.pypa.io/en/stable/) or\nsimilar tools to create isolated Python environment for develop. \n\nAfter that, install dependencys:\n\n```\n./bootstrap.sh\n```\n\n**build, test and benchmark**:\n\n```\ninv build\ninv test\ninv benchmark\n```\n\n## License\n\nAnti-996 License", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/guyskk/validr", "keywords": "validation validator validate schema jsonschema", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "validr", "package_url": "https://pypi.org/project/validr/", "platform": "", "project_url": "https://pypi.org/project/validr/", "project_urls": { "Homepage": "https://github.com/guyskk/validr" }, "release_url": "https://pypi.org/project/validr/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "A simple, fast, extensible python library for data validation.", "version": "1.1.1" }, "last_serial": 5346459, "releases": { "0.12.0": [ { "comment_text": "", "digests": { "md5": "ec3591611eb13c7fce4ab058d80be9b7", "sha256": "6eb0d14638f7d85d3558676823fb57d86bd457cdc9c4b90c359dacf72a32bb67" }, "downloads": -1, "filename": "validr-0.12.0.tar.gz", "has_sig": false, "md5_digest": "ec3591611eb13c7fce4ab058d80be9b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5834, "upload_time": "2016-10-02T07:54:06", "url": "https://files.pythonhosted.org/packages/35/f8/e45e8581959fc626adaa48aaf007dbc920f8150aeaf580cc53178f47486b/validr-0.12.0.tar.gz" } ], "0.12.1": [ { "comment_text": "", "digests": { "md5": "10eac41835a279438aa5b8488befc743", "sha256": "060918c7cb8a0d10beab40f97e5299ee0690ec7e4b348280bd14a43b635b3c5b" }, "downloads": -1, "filename": "validr-0.12.1.tar.gz", "has_sig": false, "md5_digest": "10eac41835a279438aa5b8488befc743", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6050, "upload_time": "2016-10-27T07:41:12", "url": "https://files.pythonhosted.org/packages/e4/c3/371b784e40087f497022c57ab6b7e2e97174db57f8c7c5157c2dd21bcc59/validr-0.12.1.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "2e50a4d7e66fa4561df6f137bb867114", "sha256": "ba8d1dacdcd6a17bdfbe92e015e29bff3430b03dcb4def070321d343d6d8c1cf" }, "downloads": -1, "filename": "validr-0.13.0.tar.gz", "has_sig": false, "md5_digest": "2e50a4d7e66fa4561df6f137bb867114", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6178, "upload_time": "2017-02-10T15:21:17", "url": "https://files.pythonhosted.org/packages/c1/08/8c776abbec6d64b8dfe6bdf727cbc16b7259a46ca096d33caab66f6b43c3/validr-0.13.0.tar.gz" } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "66e2af75b733bb2a562c90d05eb48a58", "sha256": "2027b1a5de2ac868544adc32c2f5da926d7e34daeea3d11ef4a089366b855212" }, "downloads": -1, "filename": "validr-0.14.0.tar.gz", "has_sig": false, "md5_digest": "66e2af75b733bb2a562c90d05eb48a58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 145329, "upload_time": "2017-03-22T07:15:33", "url": "https://files.pythonhosted.org/packages/d6/d1/ff55805fc477bff8d8f246c0417acb320689a1ee9e3630774478148eb829/validr-0.14.0.tar.gz" } ], "0.14.1": [ { "comment_text": "", "digests": { "md5": "89edf9149808af9b7394fc795c7a5965", "sha256": "a3e94a9b59eb42b76e909bf534c99c55544d00897ef308fa1a028b455e2a780f" }, "downloads": -1, "filename": "validr-0.14.1.tar.gz", "has_sig": false, "md5_digest": "89edf9149808af9b7394fc795c7a5965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 155468, "upload_time": "2017-05-25T07:49:42", "url": "https://files.pythonhosted.org/packages/8d/09/78aaa6c73b2879d2dcf480d378ffc978c54213ce840bdc48ab52eccf5a11/validr-0.14.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "78377ea0ad19a85984dc4e7b9f16013d", "sha256": "95fafaeb15be3e222ef3845433eae0a25bc37d5c9b3e279d42a9dfe4ffff56f8" }, "downloads": -1, "filename": "validr-1.0.0.tar.gz", "has_sig": false, "md5_digest": "78377ea0ad19a85984dc4e7b9f16013d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164605, "upload_time": "2018-06-29T07:35:19", "url": "https://files.pythonhosted.org/packages/4c/48/92f810607417dac336da45baf338af7a78ab7bde58c1c921c94ed3629962/validr-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3792299ca5a24bda6c699b5223049fa8", "sha256": "c702be24350dad55a96b476470ea9a5e01df646e990b53fa4b7a5f0b347b0304" }, "downloads": -1, "filename": "validr-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3792299ca5a24bda6c699b5223049fa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 164621, "upload_time": "2018-07-02T03:32:57", "url": "https://files.pythonhosted.org/packages/33/be/690973f6460ac879837ea51725316c0b7ab8007bbc26e43debd44c642657/validr-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "8a7d44d72a2158eeb3ceddcff82ba612", "sha256": "2bc9a61b3eb27a4d485dbb4d37421b7ff96eca7633541f8fcf8ee57f1f998402" }, "downloads": -1, "filename": "validr-1.0.2.tar.gz", "has_sig": false, "md5_digest": "8a7d44d72a2158eeb3ceddcff82ba612", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 165432, "upload_time": "2018-07-03T09:29:21", "url": "https://files.pythonhosted.org/packages/8f/b3/0e7d47a346304ab936ad334f28a192ffefc2a37decc1187c8353b4eccc0c/validr-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "a301ad6692267942dda945edc98ecfb2", "sha256": "c1dcfbcbcaa879902658778289105695b84dee98e5e5f10f0348844c2e910e3b" }, "downloads": -1, "filename": "validr-1.0.3.tar.gz", "has_sig": false, "md5_digest": "a301ad6692267942dda945edc98ecfb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 165434, "upload_time": "2018-07-03T11:01:02", "url": "https://files.pythonhosted.org/packages/94/f7/42da0cb9f1177f7cc39aac54012b0f678b975b1b63f020853acdafc9c5e9/validr-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "77f007f12c68bfb56eab5a5270141d12", "sha256": "838de34697cd5c56ddba238414a9d4c49443f972afd6ec45f78577ea5ecd312b" }, "downloads": -1, "filename": "validr-1.0.4.tar.gz", "has_sig": false, "md5_digest": "77f007f12c68bfb56eab5a5270141d12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 165724, "upload_time": "2018-08-02T09:04:56", "url": "https://files.pythonhosted.org/packages/47/7e/004fcaac44dea185eb9365b5e5fa266b87b30ffb3e122cf311eedcb78e77/validr-1.0.4.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "c7ecf32bba59c35a29c2ababe71fe8af", "sha256": "0b747e0a947c88dc96cb4baec3d92a5b32eca4a16d8f1ba9687dcfd71163b976" }, "downloads": -1, "filename": "validr-1.0.6.tar.gz", "has_sig": false, "md5_digest": "c7ecf32bba59c35a29c2ababe71fe8af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 176746, "upload_time": "2018-10-16T14:19:25", "url": "https://files.pythonhosted.org/packages/f2/21/aa2ecd7ea6546dd2e2096d1f0faa05e0c28ac2cbae33c5a1fab685663a33/validr-1.0.6.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e344d7aed6bdf2e288652e52e3c12823", "sha256": "764927bee967d0093a865fb754cf191e5d53cbbce668b4b254d0524f1913decd" }, "downloads": -1, "filename": "validr-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e344d7aed6bdf2e288652e52e3c12823", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 193943, "upload_time": "2019-03-23T09:02:36", "url": "https://files.pythonhosted.org/packages/ca/68/45fc7232bb927c8e7317874050476d379ba29cbd41914a5cf37105c61c09/validr-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "524e9c03bc242be21d6b7d942818e8eb", "sha256": "6fc209dc364327c95cc05179cc2915ffcfc3c808159c0b34ddf8743ee42d56e6" }, "downloads": -1, "filename": "validr-1.1.1.tar.gz", "has_sig": false, "md5_digest": "524e9c03bc242be21d6b7d942818e8eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 198569, "upload_time": "2019-06-01T13:48:06", "url": "https://files.pythonhosted.org/packages/10/80/f3c6066760bf5d994a912a2729ba755c67b08bb239f3d30997bf69c3d675/validr-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "524e9c03bc242be21d6b7d942818e8eb", "sha256": "6fc209dc364327c95cc05179cc2915ffcfc3c808159c0b34ddf8743ee42d56e6" }, "downloads": -1, "filename": "validr-1.1.1.tar.gz", "has_sig": false, "md5_digest": "524e9c03bc242be21d6b7d942818e8eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 198569, "upload_time": "2019-06-01T13:48:06", "url": "https://files.pythonhosted.org/packages/10/80/f3c6066760bf5d994a912a2729ba755c67b08bb239f3d30997bf69c3d675/validr-1.1.1.tar.gz" } ] }