{ "info": { "author": "Ruslan Roskoshnyj", "author_email": "i.am.yarger@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Validate-it\n\n[![Build Status](https://travis-ci.org/ruslux/validate-it.svg?branch=master)](https://travis-ci.org/ruslux/validate-it) \n[![Coverage Status](https://coveralls.io/repos/github/ruslux/validate-it/badge.svg?branch=master)](https://coveralls.io/github/ruslux/validate-it)\n[![PyPI version](https://badge.fury.io/py/validate-it.svg)](https://badge.fury.io/py/validate-it)\n[![Downloads](https://img.shields.io/pypi/dm/validate-it.svg)](https://pypi.python.org/pypi/validate-it)\n\n- [About](#about)\n- [Installation](#installation)\n- [Supported fields](#fields)\n- [Validation example](#validation-example)\n- [Dataclass example](#dataclass-example)\n- [Simple mapping example](#simple-mapping-example)\n- [Nested mapping example](#nested-mapping-example)\n- [Requirements](#requirements)\n\n### About\nSchema validator built on top of the typing module\n\n\n### Installation\nWith pip:\n```bash\npip install validate-it\n```\n\n### Supported fields\n```python\nimport re\nfrom datetime import datetime\nfrom typing import Dict, List, Union, Optional\nfrom validate_it import schema, Options\n\n\nclass IsNotEmailError(Exception):\n pass\n\n\ndef is_email(key, value):\n if not re.match(r\"[^@]+@[^@]+\\.[^@]+\", value):\n raise IsNotEmailError(f\"{key}: is not email\")\n\n return value\n\n@schema\nclass Example:\n # required fields\n field_a: datetime\n field_b: float\n \n # required fields with defaults\n field_c: str = \"unknown\"\n field_d: int = 9\n \n # required fields with nested types\n field_e: Dict[int, str]\n field_f: List[int]\n \n # optional fields\n field_g: Optional[int]\n field_h: Union[int, None] # equivalent of Optional[int]\n \n # with some validators:\n fields_i: int = Options(default=0, max_value=100, min_value=100)\n fields_j: str = Options(size=10)\n fields_k: str = Options(min_length=10, max_length=20)\n fields_l: List[str] = Options(size=5)\n fields_m: str = Options(validators=[is_email])\n fields_n: int = Options(allowed=[1, 2, 3])\n \n # with search (input) alias:\n fields_o: int = Options(alias=\"field_n\")\n \n # with rename (output) alias:\n fields_p: int = Options(rename=\"field_q\")\n \n # with serializer used in #to_dict(), outgoing value is str type\n fields_q: int = Options(serializer=str)\n \n # with parser used in #from_dict() or direct setattr, incoming value will be parsed as int\n fields_r: int = Options(parser=int)\n```\n\n### Validation example\n```python\nfrom typing import List\nfrom validate_it import *\n\n\n@schema\nclass Simple:\n a: int\n b: int\n\n\nsimple = Simple(a=1, b=2)\nsimple.a = 2\nsimple.b = 3\n\ntry:\n simple.a = 'not int'\nexcept TypeError:\n print(\"Wrong type\")\n\n@schema\nclass Owner:\n first_name: str\n last_name: str\n\n\n@schema\nclass Characteristics:\n cc: float = Options(min_value=0.0)\n hp: int = Options(min_value=0)\n\n\n@schema\nclass Car:\n name: str = Options(min_length=2, max_length=20)\n owners: List[Owner] = Options(auto_pack=True, packer=pack_value)\n characteristics: Characteristics = Options(default=lambda: {\"cc\": 0.0, \"hp\": 0}, auto_pack=True, packer=pack_value)\n convert: bool = Options(parser=bool)\n\n\n_data = {\n \"name\": \"Shelby GT500\",\n \"owners\": [\n {\n \"first_name\": \"Randall\",\n \"last_name\": \"Raines\",\n }\n ],\n \"characteristics\": {\n \"cc\": 4.7,\n \"hp\": 306\n },\n \"unknown_field\": 10,\n \"convert\": 1 \n}\n\n_expected = {\n \"name\": \"Shelby GT500\",\n \"owners\": [\n {\n \"first_name\": \"Randall\",\n \"last_name\": \"Raines\",\n }\n ],\n \"characteristics\": {\n \"cc\": 4.7,\n \"hp\": 306\n },\n \"convert\": \"1\"\n}\n\ncar = Car(**_data)\nassert to_dict(car) == _expected\n```\n### Dataclass example\n```python\nfrom validate_it import *\nfrom dataclasses import dataclass\n\n\n@schema\n@dataclass\nclass Simple:\n a: int\n b: int\n\n\nsimple = Simple(a=1, b=2)\nsimple.a = 2\nsimple.b = 3\n\ntry:\n simple.a = 'not int'\nexcept TypeError:\n print(\"Wrong type\")\n```\n\n### Simple mapping example\n```python\nfrom validate_it import *\n\n\n@schema\nclass User:\n first_name: str = Options(alias=\"f\")\n last_name: str = Options(alias=\"l\")\n\n_in_data = {\n \"f\": \"John\",\n \"l\": \"Connor\"\n}\n\nuser = User(**_in_data)\n\nassert to_dict(user) == {\"first_name\": \"John\", \"last_name\": \"Connor\"}\n```\n\n### Nested mapping example\n```python\nfrom validate_it import *\nfrom accordion import compress\n\n\n@schema\nclass Player:\n nickname: str = Options(alias=\"info.nickname\")\n intelligence: int = Options(alias=\"characteristics/0\")\n dexterity: int = Options(alias=\"characteristics/1\")\n strength: int = Options(alias=\"characteristics/2\")\n vitality: int = Options(alias=\"characteristics/3\")\n\n_in_data = {\n \"info\": {\n \"nickname\": \"Killer777\",\n },\n \"characteristics\": [\n 7,\n 55,\n 11,\n 44\n ]\n}\n\nplayer = Player(**compress(_in_data))\n\nassert to_dict(player) == {\n \"nickname\": \"Killer777\", \n \"intelligence\": 7, \n \"dexterity\": 55, \n \"strength\": 11, \n \"vitality\": 44\n}\n```\n\nand back:\n```python\nfrom validate_it import *\nfrom accordion import expand\n\n\n@schema\nclass Player:\n nickname: str = Options(rename=\"info.nickname\")\n intelligence: int = Options(rename=\"characteristics/0\")\n dexterity: int = Options(rename=\"characteristics/1\")\n strength: int = Options(rename=\"characteristics/2\")\n vitality: int = Options(rename=\"characteristics/3\")\n\n_in_data = {\n \"nickname\": \"Killer777\", \n \"intelligence\": 7, \n \"dexterity\": 55, \n \"strength\": 11, \n \"vitality\": 44\n}\n\nplayer = Player(**_in_data)\n\nassert expand(to_dict(player)) == {\n \"info\": {\n \"nickname\": \"Killer777\",\n },\n \"characteristics\": [\n 7,\n 55,\n 11,\n 44\n ]\n}\n```\n\n### Requirements\nTested with `python3.6`, `python3.7`, `pypy3.6-7.0.0`\n\n### Contribution how-to\n###### Run tests:\n* clone repo: `git clone `\n* create and activate your virtualenv\n* `pip install -r requirements.txt && pip install -r dev-requirements`\n* `./run_tests.sh`", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/ruslux/validate_it/archive/0.10.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ruslux/validate_it", "keywords": "schema,validator,json,typing,annotations", "license": "LICENSE.txt", "maintainer": "", "maintainer_email": "", "name": "validate-it", "package_url": "https://pypi.org/project/validate-it/", "platform": "OS Independent", "project_url": "https://pypi.org/project/validate-it/", "project_urls": { "Download": "https://github.com/ruslux/validate_it/archive/0.10.1.tar.gz", "Homepage": "https://github.com/ruslux/validate_it" }, "release_url": "https://pypi.org/project/validate-it/0.10.1/", "requires_dist": null, "requires_python": ">=3.6.0,>=3.7.0", "summary": "Schema validator built on top of the typing module", "version": "0.10.1" }, "last_serial": 5885892, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f06e42407d79846de5d1fc3da70b7f7c", "sha256": "b8e2b5e701dbb38dd2760088d24d4bcd68ecaa0014f9d8db27c1cb332afb2922" }, "downloads": -1, "filename": "validate-it-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f06e42407d79846de5d1fc3da70b7f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5062, "upload_time": "2018-04-02T12:58:37", "url": "https://files.pythonhosted.org/packages/18/d4/c2140b4894576814f196a9002a196f1c933b29ae7fe109a67398ebae2339/validate-it-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "15d1a12fa338b074b95b2616860d3696", "sha256": "24bc582a571668c96cf42b8b3f48a71af56be889819b01e857a38731e45f8131" }, "downloads": -1, "filename": "validate-it-0.1.1.tar.gz", "has_sig": false, "md5_digest": "15d1a12fa338b074b95b2616860d3696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5142, "upload_time": "2018-04-02T16:22:22", "url": "https://files.pythonhosted.org/packages/3a/06/4e0497b9acdc2e564736227a120573e7270959fb76a873b987aa97b1fb2c/validate-it-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "240b975ebe2b37407450ae827c9ce610", "sha256": "7af357e8a3e949a35bd734abbf251108f8113604af1e589d855b05befc5a261e" }, "downloads": -1, "filename": "validate-it-0.1.2.tar.gz", "has_sig": false, "md5_digest": "240b975ebe2b37407450ae827c9ce610", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5111, "upload_time": "2018-04-03T21:44:02", "url": "https://files.pythonhosted.org/packages/de/ea/819b412b5a526bb23dfb90b6f24cd520b41651dbb844789176997a5f5bc4/validate-it-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5e93f977c0d7a9212b212bf77a84a1c8", "sha256": "664a1c66373c33f69f037962af94d7d569499f1b48d70d9abc8740ab343c02de" }, "downloads": -1, "filename": "validate-it-0.1.3.tar.gz", "has_sig": false, "md5_digest": "5e93f977c0d7a9212b212bf77a84a1c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5109, "upload_time": "2018-04-04T15:32:40", "url": "https://files.pythonhosted.org/packages/47/2f/3f9f41ad51545b49f8900c3c11f511a49602b8d5f766a54a3e8216f7b3c8/validate-it-0.1.3.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "00203bf5a5840880179ffd7ede7b5885", "sha256": "a37222ea54641a99e4c06201813341b6b834c260d97455d86792028b2dc420b9" }, "downloads": -1, "filename": "validate-it-0.10.0.tar.gz", "has_sig": false, "md5_digest": "00203bf5a5840880179ffd7ede7b5885", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 9876, "upload_time": "2019-07-16T09:04:39", "url": "https://files.pythonhosted.org/packages/75/8e/92689a46df67e44531dcebbf8453af561aa2f4f7ad730d216246adc4a2ba/validate-it-0.10.0.tar.gz" } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "1e7daece92459ca392ce5b6c5fb56dc0", "sha256": "b80caac3eb2756920e5e7b38c20738c9bcf75e1557d0572eb71ec92141590aa3" }, "downloads": -1, "filename": "validate-it-0.10.1.tar.gz", "has_sig": false, "md5_digest": "1e7daece92459ca392ce5b6c5fb56dc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 10006, "upload_time": "2019-09-25T15:15:34", "url": "https://files.pythonhosted.org/packages/80/fe/59f6f04067c14da071095dfd2315e976310866be8976214af6c4b87e3d2e/validate-it-0.10.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f3733e47df244c52e9333d98b79c648e", "sha256": "6ba1308a80bd04d3c4793a13302417886dd19a59ce7db645fce58df2ec6bc589" }, "downloads": -1, "filename": "validate-it-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f3733e47df244c52e9333d98b79c648e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5408, "upload_time": "2018-04-05T11:51:38", "url": "https://files.pythonhosted.org/packages/4d/97/0a78d25a2aa4f8337ea7cb51e2dfada02ae86df71accd7fcaf84f9a4a4cf/validate-it-0.2.0.tar.gz" } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "b9c29ca64824ae8efb354651b25e3c21", "sha256": "6dc0a1e2acc27d00fe7a71f889efab57626f2dd5ec936b272f7211b742889a69" }, "downloads": -1, "filename": "validate-it-0.2.10.tar.gz", "has_sig": false, "md5_digest": "b9c29ca64824ae8efb354651b25e3c21", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 11158, "upload_time": "2018-06-19T08:33:39", "url": "https://files.pythonhosted.org/packages/6b/63/8e5f899fa133465a418e12056214512907cecd821b9e894987e7c1d558c0/validate-it-0.2.10.tar.gz" } ], "0.2.11": [ { "comment_text": "", "digests": { "md5": "a7b3f81e02b9957a69742acde0f13bb4", "sha256": "5e1ae19232748e5e2369fd39fcb0f7ea490e037cdcc83d85349d5dc33eacdb5a" }, "downloads": -1, "filename": "validate-it-0.2.11.tar.gz", "has_sig": false, "md5_digest": "a7b3f81e02b9957a69742acde0f13bb4", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 11159, "upload_time": "2018-06-19T09:53:44", "url": "https://files.pythonhosted.org/packages/a6/57/b4c73835ef7182c39dbbf4ca009e4c518dafca0e0b0b1bfaf1652c9f8569/validate-it-0.2.11.tar.gz" } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "0e6b8fc087ce6951b13a7b04537ff73a", "sha256": "4ad3eb70aaf7342ac83445d6ec3d1060fdc6c7c94d34f98855469280f7b30f25" }, "downloads": -1, "filename": "validate-it-0.2.12.tar.gz", "has_sig": false, "md5_digest": "0e6b8fc087ce6951b13a7b04537ff73a", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 11168, "upload_time": "2018-06-19T11:42:34", "url": "https://files.pythonhosted.org/packages/fc/1e/2239b303b5dc1b93984f61e513bcc416970715c588c0d46de6e6ad75291d/validate-it-0.2.12.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8e345ef2a7121775853f13da287ae599", "sha256": "3d89a9d552233173c79a11cab33ea57775010d5d1ec2609a394d35d681a6478a" }, "downloads": -1, "filename": "validate-it-0.2.2.tar.gz", "has_sig": false, "md5_digest": "8e345ef2a7121775853f13da287ae599", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5382, "upload_time": "2018-04-05T19:30:24", "url": "https://files.pythonhosted.org/packages/b1/b1/632c323b6e4699cfe9fb39ad00deaae6c217ca004813db19e9237764eb74/validate-it-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "9f623b3b0d58812b682071c5b783617c", "sha256": "03770d66925854a443417f93e886761a5d4c9619d2679435c8db9752a77a75d2" }, "downloads": -1, "filename": "validate-it-0.2.3.tar.gz", "has_sig": false, "md5_digest": "9f623b3b0d58812b682071c5b783617c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5426, "upload_time": "2018-04-07T11:28:23", "url": "https://files.pythonhosted.org/packages/fa/27/91f3b22d31aaa51696964a720298d0d11e760bd6f7d9382765aa38618f1f/validate-it-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "c76a1b3ff20511e64ef4840f0446862f", "sha256": "2187e223541dab44a958197e8c644858170494218374b6ce819ef6a76b9dc8ae" }, "downloads": -1, "filename": "validate-it-0.2.4.tar.gz", "has_sig": false, "md5_digest": "c76a1b3ff20511e64ef4840f0446862f", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 9647, "upload_time": "2018-04-24T20:09:26", "url": "https://files.pythonhosted.org/packages/c9/a4/53df51ce254d64d86646a97fff2c1a02b098f1e7052e30880469241b58ed/validate-it-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "6edbd9faa05e10869cb4bd33708316c2", "sha256": "434de1674521ef1ba93b01d6bfdae1a349f37e654380559b91237bf6a5543a04" }, "downloads": -1, "filename": "validate-it-0.2.5.tar.gz", "has_sig": false, "md5_digest": "6edbd9faa05e10869cb4bd33708316c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 9983, "upload_time": "2018-04-26T14:12:21", "url": "https://files.pythonhosted.org/packages/55/00/e8e1742d3eeebf6dda2eb2c72a9b930e2312d3fc4b76b8e1d1685982dd98/validate-it-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "5d93b5d9932310576b011471802d2771", "sha256": "c09e32ea03bd48107e2094523b92304560a549efe83fcdd50d8141a48283eeed" }, "downloads": -1, "filename": "validate-it-0.2.6.tar.gz", "has_sig": false, "md5_digest": "5d93b5d9932310576b011471802d2771", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 10799, "upload_time": "2018-05-29T15:37:28", "url": "https://files.pythonhosted.org/packages/46/90/e4292d5d3b7585f2555c21af2dfa525f30346f9d249e0c9c29ccc3c14e67/validate-it-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "2af82d2200a33f941eed26166cf7e051", "sha256": "30214cc0d32ddf2c4801b87570ff1e1cb3581351007903f336adc5e9daa435d9" }, "downloads": -1, "filename": "validate-it-0.2.7.tar.gz", "has_sig": false, "md5_digest": "2af82d2200a33f941eed26166cf7e051", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 10897, "upload_time": "2018-06-05T15:55:43", "url": "https://files.pythonhosted.org/packages/db/47/000dd0ca3b3a72f1b85bbecf115c34c497065db8ed5c0dde376e5df05acc/validate-it-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "108e9dd6e335fae6c9beea28194a360d", "sha256": "25c0a13a6eb45073471d14f26c4c2f339aa7811e917e81961fd181d3047a09da" }, "downloads": -1, "filename": "validate-it-0.2.8.tar.gz", "has_sig": false, "md5_digest": "108e9dd6e335fae6c9beea28194a360d", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 11089, "upload_time": "2018-06-15T12:31:51", "url": "https://files.pythonhosted.org/packages/6e/c5/ee4758aa0309f9cc6d5c0963c4ccfe265a6d01e15721859206f772749039/validate-it-0.2.8.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "ffbedcc59d5b8e64df097aa628464329", "sha256": "55f58e705698726dd262c691375e84210caac71976d1a53def348a55d39a0a59" }, "downloads": -1, "filename": "validate-it-0.2.9.tar.gz", "has_sig": false, "md5_digest": "ffbedcc59d5b8e64df097aa628464329", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 11088, "upload_time": "2018-06-18T13:44:17", "url": "https://files.pythonhosted.org/packages/e5/fc/35422d6ac7b14560d4d1fa5b1a0520b9398814cfbeb815e8ff101d364418/validate-it-0.2.9.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a0e70b42ffbc47bd7136eb8182caa6de", "sha256": "0ed7464e443b3ed58043271801c1e2c8c04e4a81c004742b246d1b669ad1a881" }, "downloads": -1, "filename": "validate-it-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a0e70b42ffbc47bd7136eb8182caa6de", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 12605, "upload_time": "2018-11-02T08:49:19", "url": "https://files.pythonhosted.org/packages/6e/29/3a3fc9a9c419b14445129ff38ee65252efd50872fe16aa845e94287135e5/validate-it-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a19df2db1e37903c464375a79bb53278", "sha256": "213369e0075dc54835db12223dbd89c39b2da56b6aac22a6738c77430aed7c90" }, "downloads": -1, "filename": "validate-it-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a19df2db1e37903c464375a79bb53278", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 12619, "upload_time": "2018-11-07T12:50:31", "url": "https://files.pythonhosted.org/packages/2d/35/938a75c851ca5e55aa5e3e96b1115edd37e5a88b61dbd7ff225514220f4d/validate-it-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "79a52837f7bc3b87b54df500095c2628", "sha256": "89f5955279f72acb400a2d646e3521d7e72175d1adaff6192f62e02fec29254c" }, "downloads": -1, "filename": "validate-it-0.3.2.tar.gz", "has_sig": false, "md5_digest": "79a52837f7bc3b87b54df500095c2628", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 12707, "upload_time": "2018-11-07T13:35:16", "url": "https://files.pythonhosted.org/packages/c7/27/ab8cb7779d952d5764ef7b3c54627fc276d342e5f2318193d5107cb56779/validate-it-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "a8e1291a9fce9ebe3af1a2c7036533ad", "sha256": "c0e2ff674120f7e62821cc39903070ce02fa05bc29eead4871664a1e5154ab81" }, "downloads": -1, "filename": "validate-it-0.3.3.tar.gz", "has_sig": false, "md5_digest": "a8e1291a9fce9ebe3af1a2c7036533ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 12694, "upload_time": "2018-11-13T11:47:18", "url": "https://files.pythonhosted.org/packages/93/dc/e5a683767d6188efd9c1f0d9ec0349381152c062249c12d9738161c17263/validate-it-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "0e726c3203d8ade62416f79c114068eb", "sha256": "46fdf1779068d566c4303dd80e4844d3067848474d6bbccc06a2bda53ac6d1af" }, "downloads": -1, "filename": "validate-it-0.3.4.tar.gz", "has_sig": false, "md5_digest": "0e726c3203d8ade62416f79c114068eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 13272, "upload_time": "2018-11-23T10:24:17", "url": "https://files.pythonhosted.org/packages/cf/63/7941c159772b42ce17b0b04077b9d23cf60666d5938e082c2c541448178f/validate-it-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "0078890e26391cbb6a977dcea58ad792", "sha256": "465bc11dee570063c5891208768f33078e92da9bc3f24bc81868edd512340234" }, "downloads": -1, "filename": "validate-it-0.3.5.tar.gz", "has_sig": false, "md5_digest": "0078890e26391cbb6a977dcea58ad792", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 13656, "upload_time": "2018-11-26T16:11:35", "url": "https://files.pythonhosted.org/packages/f6/8b/b9dc6a2ed5c2e4c2be148e4ebb5ef263b97e289912ca4aa895255711220a/validate-it-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "5d4c2d6252df21e110c88846ccad6523", "sha256": "c950142e72927915b63a755a4c59823ba4a8fa43b2b3b70c785a377c0fcfec9a" }, "downloads": -1, "filename": "validate-it-0.3.6.tar.gz", "has_sig": false, "md5_digest": "5d4c2d6252df21e110c88846ccad6523", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 13658, "upload_time": "2018-11-27T08:00:20", "url": "https://files.pythonhosted.org/packages/40/88/de0b3d8cd6c104f0ba215693d1e9c6819a4707e12a3a896481bd8ecd65e6/validate-it-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "5bb376e05bd5077b36bf835cf7c75ef1", "sha256": "5359e9cafba9eaf516568933b24234223d58002efa12b68fda9ea4756abb0fa5" }, "downloads": -1, "filename": "validate-it-0.3.7.tar.gz", "has_sig": false, "md5_digest": "5bb376e05bd5077b36bf835cf7c75ef1", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 13849, "upload_time": "2018-11-27T12:19:54", "url": "https://files.pythonhosted.org/packages/4c/62/25e56d322063cef7766523c55176c1dfe41c07ce82dbad8734315c2b8d0b/validate-it-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "209edd37e88e4af9c6a0bf2b7ee819ad", "sha256": "661336aceeaa0cacae069b97429cbe1bb0c98bfc4a88c77055a2720d247abff6" }, "downloads": -1, "filename": "validate-it-0.3.8.tar.gz", "has_sig": false, "md5_digest": "209edd37e88e4af9c6a0bf2b7ee819ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 13910, "upload_time": "2018-12-05T13:23:53", "url": "https://files.pythonhosted.org/packages/b4/63/6532a38b1d30219424eaff3adc576711a9a9dcdc76da30a089e11d59fc23/validate-it-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "65d0f55706071e26157c9bba879a71d8", "sha256": "5315c9ae4929eb395ca523834cf4423b0184b1ee0c967e0fbffd37fb72ffe702" }, "downloads": -1, "filename": "validate-it-0.3.9.tar.gz", "has_sig": false, "md5_digest": "65d0f55706071e26157c9bba879a71d8", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.7.0", "size": 14224, "upload_time": "2018-12-10T15:51:36", "url": "https://files.pythonhosted.org/packages/df/54/b536b5fd07f5a518b28d85a15a76d40fd16452eb296f69295bafe9f350db/validate-it-0.3.9.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f8cedbfd4fc1cc7ec48cd785b2678186", "sha256": "8f74ff648ff47410d7faad17f095da3eeee3065f7b72186b99fbdbce06ed3000" }, "downloads": -1, "filename": "validate-it-0.4.0.tar.gz", "has_sig": false, "md5_digest": "f8cedbfd4fc1cc7ec48cd785b2678186", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 14183, "upload_time": "2019-03-11T09:53:55", "url": "https://files.pythonhosted.org/packages/7c/cd/0dfff80270de214c68b15a0c5335efe69568d2c1291d23217e07545e7923/validate-it-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "d073eb5825fb728e1c63a744795fc94a", "sha256": "5d53d7c890880c13e2a64e35e63b226d3b8088e045938dd9ae9638b67037b062" }, "downloads": -1, "filename": "validate-it-0.4.1.tar.gz", "has_sig": false, "md5_digest": "d073eb5825fb728e1c63a744795fc94a", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6.0", "size": 14221, "upload_time": "2019-03-13T12:47:24", "url": "https://files.pythonhosted.org/packages/83/96/50050584828737294099a832f6432a8a353a41407d4c35e6471314ace502/validate-it-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b8d043c81a27b002768ef3f5bf9287d4", "sha256": "9301ed6b2774e461cfa2835ced741dc89f5dc510a8b8265bf60c5f4ebe528f18" }, "downloads": -1, "filename": "validate-it-0.5.0.tar.gz", "has_sig": false, "md5_digest": "b8d043c81a27b002768ef3f5bf9287d4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 10030, "upload_time": "2019-04-28T18:41:54", "url": "https://files.pythonhosted.org/packages/a6/52/66fd6797541a39f351e845a6af3eeb137f8e2c84bf16db00a7638d4ae0fa/validate-it-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "6d290a5f68af38765e2a419d3145a9c2", "sha256": "306976ad681ad8c59a25a18e618f837d667aeae87859ac4aa37767645bc1bf5b" }, "downloads": -1, "filename": "validate-it-0.5.1.tar.gz", "has_sig": false, "md5_digest": "6d290a5f68af38765e2a419d3145a9c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 10004, "upload_time": "2019-04-28T18:59:26", "url": "https://files.pythonhosted.org/packages/57/52/de6011878d564fc3ad24a88d360aa27bee66502e56cd7e853ede963d61c2/validate-it-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "42452f607622f7664cdc8112ec6530e0", "sha256": "cf4def45c32fd87cd3c2f526fdb283332f3328fc530921d5ee9f138b0350cb0c" }, "downloads": -1, "filename": "validate-it-0.5.2.tar.gz", "has_sig": false, "md5_digest": "42452f607622f7664cdc8112ec6530e0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 10257, "upload_time": "2019-04-28T19:33:59", "url": "https://files.pythonhosted.org/packages/3b/f0/057a32b7a912031465949b4b20d3cc55f4800aaa82cb0d214a3ce56909bb/validate-it-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "94c4767bf48246bd656e3c13b42a9bbf", "sha256": "65f0363008bba66158914f1edf7231c8d86625b10466427ace7baf880ff0d207" }, "downloads": -1, "filename": "validate-it-0.5.3.tar.gz", "has_sig": false, "md5_digest": "94c4767bf48246bd656e3c13b42a9bbf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 10296, "upload_time": "2019-05-01T07:36:38", "url": "https://files.pythonhosted.org/packages/53/b7/21fed2caae3cd6c2eea4643f4d9b1a54ac29152230cc71a5a9e5251d25ca/validate-it-0.5.3.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "f78d2a0bf457cf21caf47e0fe860ecbb", "sha256": "63f43b8d835b110cc6e14e7a705a6b3b69a789e20b1f0f3ee265ddd3a7ee1fd1" }, "downloads": -1, "filename": "validate-it-0.6.0.tar.gz", "has_sig": false, "md5_digest": "f78d2a0bf457cf21caf47e0fe860ecbb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 11541, "upload_time": "2019-05-02T08:53:37", "url": "https://files.pythonhosted.org/packages/a0/cd/ecd507b585d4c779a67358e5b5551c7b916f447a79463c82089ff207855f/validate-it-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f5ff622de4426617d2cbd8f270cff7d0", "sha256": "6e3851e35486d5ceb4e1561e89057d5cd47ebe31cd9c992e3efcaac7ebd25218" }, "downloads": -1, "filename": "validate-it-0.7.0.tar.gz", "has_sig": false, "md5_digest": "f5ff622de4426617d2cbd8f270cff7d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 11822, "upload_time": "2019-05-03T11:56:50", "url": "https://files.pythonhosted.org/packages/7c/59/4a1f953860e1c41cc8dfce37b38854156a2a1bc185c63e1b39f2463963c4/validate-it-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "ae87677750dbc669ae84f0b8b6f2f745", "sha256": "d694b54e8a5bf227abcef8743f40e740d215f80ba136ddf30b1ce1210001b912" }, "downloads": -1, "filename": "validate-it-0.7.1.tar.gz", "has_sig": false, "md5_digest": "ae87677750dbc669ae84f0b8b6f2f745", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 11760, "upload_time": "2019-05-04T09:38:43", "url": "https://files.pythonhosted.org/packages/cd/68/1baf7b47ff405b547ef162cdc6a61f875c44bb896053ee6832693ddc16c2/validate-it-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "84afff84aa2ca0ddd22527d7f21afcf3", "sha256": "587243ccbe0bd605e47d7ec2beec3dd726f56c4102b5b71a8a90e02273e7091e" }, "downloads": -1, "filename": "validate-it-0.7.2.tar.gz", "has_sig": false, "md5_digest": "84afff84aa2ca0ddd22527d7f21afcf3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12053, "upload_time": "2019-05-04T21:53:08", "url": "https://files.pythonhosted.org/packages/6c/35/353ef50bdb5966cbc51e93e86fa53001ba7f7431d426cda5f8058a6ad5fc/validate-it-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "910488bde3cf17fb852484d2aea9c33e", "sha256": "20962931cb20d209b83fbe54ca067e1abb1b7ada174cd00d1ee0a9232220bad9" }, "downloads": -1, "filename": "validate-it-0.7.3.tar.gz", "has_sig": false, "md5_digest": "910488bde3cf17fb852484d2aea9c33e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12462, "upload_time": "2019-05-05T14:53:14", "url": "https://files.pythonhosted.org/packages/31/ac/2040ef4077944180399b2ef28be3a4a9327dc0a42bbaa500bff792c926b6/validate-it-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "6cd46f1a009dd05aec74fa43bb08c3e4", "sha256": "430005d6d23a1233499dff30a56c9ea784037d16834e018173adb9d281a429e4" }, "downloads": -1, "filename": "validate-it-0.7.4.tar.gz", "has_sig": false, "md5_digest": "6cd46f1a009dd05aec74fa43bb08c3e4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12628, "upload_time": "2019-05-05T15:30:48", "url": "https://files.pythonhosted.org/packages/d9/ee/e29daa0d3141bce23ab231cff4d228a0c257b675b846b76b0276f1e695d9/validate-it-0.7.4.tar.gz" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "335a320d3b25d9f57eaf31eedfdd9938", "sha256": "ecbafc97aa1f5452d302a8764b52bae0fd3486c8403b42714e2b569d73063b92" }, "downloads": -1, "filename": "validate-it-0.7.5.tar.gz", "has_sig": false, "md5_digest": "335a320d3b25d9f57eaf31eedfdd9938", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12657, "upload_time": "2019-05-05T15:52:57", "url": "https://files.pythonhosted.org/packages/7c/f4/90bf084c431247835b024157a90680faeafb2b0983031b4a06f84fcba1c0/validate-it-0.7.5.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "69b38ee57453d649305a493f7b64c02f", "sha256": "1bb2f4b757cd27451fc293ed009f05f80ff1614a1128344278c38629e8551057" }, "downloads": -1, "filename": "validate-it-0.8.0.tar.gz", "has_sig": false, "md5_digest": "69b38ee57453d649305a493f7b64c02f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12348, "upload_time": "2019-05-06T09:38:06", "url": "https://files.pythonhosted.org/packages/aa/96/903a3ac0bd85ab91660f6b88b67e4a0b7d6ebe026b4b07aee4d79c916c35/validate-it-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "ae3522bd67154f4d6f8743173d7051f2", "sha256": "5bdf66fc9416120d8f30345af5705558e884da617f9a2c80dec12644547be218" }, "downloads": -1, "filename": "validate-it-0.8.1.tar.gz", "has_sig": false, "md5_digest": "ae3522bd67154f4d6f8743173d7051f2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12458, "upload_time": "2019-05-06T19:17:51", "url": "https://files.pythonhosted.org/packages/5c/b5/7a0cdbde5d4af97b08451e1ef59eb2f31bc069fcd77e0f7cfd7dfda9d6db/validate-it-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "c27ead30b5a0e813347aedf78f2570db", "sha256": "f26349bf0d9d2b966700b979e7b583433f046062d658d6cd2303810a97d3133c" }, "downloads": -1, "filename": "validate-it-0.8.2.tar.gz", "has_sig": false, "md5_digest": "c27ead30b5a0e813347aedf78f2570db", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12543, "upload_time": "2019-05-07T10:41:24", "url": "https://files.pythonhosted.org/packages/70/4f/1e1e13d4c5493beef35c876bca6ba11bb79da3856a044d0c6215c5edb595/validate-it-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "2bdeaaadd88b9987f0881893b7443746", "sha256": "3a49bbce21a3889397348cc9a3c0167d2f78decebcd8433f325b59bc063d9484" }, "downloads": -1, "filename": "validate-it-0.8.3.tar.gz", "has_sig": false, "md5_digest": "2bdeaaadd88b9987f0881893b7443746", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12871, "upload_time": "2019-05-13T16:20:09", "url": "https://files.pythonhosted.org/packages/27/99/2fc69a0214172f7ecda3e5f15c5eac09b6fcb413a83b7398e6c93866ae1a/validate-it-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "51dc249574774c76c33770310bcc102d", "sha256": "3e32b74187a3f9676e820570ad0ede7b26f0c25729066c5be7c7b5bfaefb7571" }, "downloads": -1, "filename": "validate-it-0.8.4.tar.gz", "has_sig": false, "md5_digest": "51dc249574774c76c33770310bcc102d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12907, "upload_time": "2019-05-15T13:23:01", "url": "https://files.pythonhosted.org/packages/e2/b3/090220e02342a8dff92abcb55b18d80d962aa5b4c647f7eb738267ba9aa2/validate-it-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "55b2d9a83ede976db56024ba7221d58c", "sha256": "368fd80d47e64e731cb589645c00bbf3f5ab69d34ff4dd7a1e4eba2dbf0f6a0f" }, "downloads": -1, "filename": "validate-it-0.8.5.tar.gz", "has_sig": false, "md5_digest": "55b2d9a83ede976db56024ba7221d58c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 12992, "upload_time": "2019-05-15T14:18:47", "url": "https://files.pythonhosted.org/packages/01/3e/7f762d6c35a6ca657a6a6fa3bd4927fc8a471a2a8b36f939b8a89df557f4/validate-it-0.8.5.tar.gz" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "e81dec67e25ed88aa048b6f1aad68d44", "sha256": "1351aec2f7746b95265ab8edc9d43984cbfa38b7462ef3fe1cf0d1152fb205c0" }, "downloads": -1, "filename": "validate-it-0.8.6.tar.gz", "has_sig": false, "md5_digest": "e81dec67e25ed88aa048b6f1aad68d44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 13190, "upload_time": "2019-05-27T10:41:25", "url": "https://files.pythonhosted.org/packages/34/04/6bda14f06d05216f459b0c7c12c72a5846bc724c3c18b8bb9e5d645da5c2/validate-it-0.8.6.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "42c9696681b24dd202abdd092edc04de", "sha256": "e04d6deac92d1dddc2954561c0483ae6331c80dd7ed26b8902000deffeab802d" }, "downloads": -1, "filename": "validate-it-0.9.0.tar.gz", "has_sig": false, "md5_digest": "42c9696681b24dd202abdd092edc04de", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 14509, "upload_time": "2019-06-25T11:28:26", "url": "https://files.pythonhosted.org/packages/d9/65/93af23b9a3b5a1c4edf35b5af1ba127c56dbaa31589df017987f7db0e93a/validate-it-0.9.0.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "227772a4c5c64aec2e80be4cff452bb8", "sha256": "ec05e5df3dea7784bbaf79d5f508072c151c6c23e32c4cf945b94772c29845d1" }, "downloads": -1, "filename": "validate-it-0.9.2.tar.gz", "has_sig": false, "md5_digest": "227772a4c5c64aec2e80be4cff452bb8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 9971, "upload_time": "2019-06-25T12:57:23", "url": "https://files.pythonhosted.org/packages/12/ad/9a6c7e232a118d797bbd52aef6f839fa4c3dd542abece818fdb135ac3969/validate-it-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "82dc8630316de7dc1b64613cd16e5564", "sha256": "59e29cf77476c3992c29295c4bd6b8cf84ed8e684142b7d1547323062b2fe7c5" }, "downloads": -1, "filename": "validate-it-0.9.3.tar.gz", "has_sig": false, "md5_digest": "82dc8630316de7dc1b64613cd16e5564", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 9862, "upload_time": "2019-07-15T10:41:13", "url": "https://files.pythonhosted.org/packages/96/0a/b409db1e7fbac201bf6a159be941e166e0ed00a3e3047465c73aadf6543f/validate-it-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1e7daece92459ca392ce5b6c5fb56dc0", "sha256": "b80caac3eb2756920e5e7b38c20738c9bcf75e1557d0572eb71ec92141590aa3" }, "downloads": -1, "filename": "validate-it-0.10.1.tar.gz", "has_sig": false, "md5_digest": "1e7daece92459ca392ce5b6c5fb56dc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0,>=3.7.0", "size": 10006, "upload_time": "2019-09-25T15:15:34", "url": "https://files.pythonhosted.org/packages/80/fe/59f6f04067c14da071095dfd2315e976310866be8976214af6c4b87e3d2e/validate-it-0.10.1.tar.gz" } ] }