{ "info": { "author": "Tim Heap", "author_email": "tim@timheap.me", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "===========\nvaledictory\n===========\n\n.. image:: https://badge.fury.io/py/valedictory.svg\n :target: https://pypi.org/project/valedictory/\n.. image:: https://readthedocs.org/projects/valedictory/badge/?version=latest\n :target: https://valedictory.readthedocs.io/en/latest/\n\nValedictory validates the data in ``dict``\\s.\nIt is designed for use in API validation,\nand other situations where you are receiving structured JSON data\nas opposed to key-value POST form data.\nIt takes in a dict of data (probably obtained from a JSON POST request),\nand validates that data against some fields.\n\nValidators are defined as classes.\nDeclare fields on a Validator class.\nOnce constructed, Validator instances are immutable.\n\n.. code-block:: python\n\n from valedictory import Validator, fields, InvalidDataException\n\n class PersonValidator(Validator):\n name = fields.CharField()\n height = fields.IntegerField()\n date_of_birth = fields.DateField()\n\n person_validator = PersonValidator()\n\nA Python dict can be checked to see if it conforms to this validator.\nThe dict can come from a JSON POST request, or a configuration file,\nor any other external data source that needs validation and cleaning.\nThe cleaned data will be returned.\nValidator classes will return a dict of cleaned data.\nEach field type may transform the data as part of cleaning it.\nFor example, the ``DateField`` will transform the data\ninto a ``datetime.date`` instance.\n\n.. code-block:: python\n\n input_data = json.loads(request.body)\n\n try:\n # cleaned_data will be a dict of cleaned, validated data\n cleaned_data = person_validator.clean(input_data)\n\n # Do something with the returned data\n Person.objects.create(**cleaned_data)\n\n except InvalidDataException as errors:\n # The data did not pass validation\n for path, message in errors.flatten():\n # This will print something like 'name: This field is required'\n print(\"{0}: {1}\".format('.'.join(path), message))\n\nValidators can be nested, allowing dicts of arbitrary complexity:\n\n.. code-block:: python\n\n class ArticleValidator(Validator):\n content = fields.CharField()\n published = fields.DateTimeField()\n author = fields.NestedValidator(PersonValidator())\n tags = fields.ListField(fields.CharField())\n\n # Some example data that would pass validation:\n data = {\n \"content\": \"An interesting article\",\n \"published\": \"2018-06-13T1:44:00+10:00\",\n \"author\": {\n \"name\": \"Alex Smith\",\n \"height\": 175,\n \"date_of_birth\": \"1990-03-26\",\n },\n \"tags\": [\"humour\", \"interesting\", \"clickbait\"],\n }\n\n`Read the documentation for more information `_.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/timheap/valedictory/", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "valedictory", "package_url": "https://pypi.org/project/valedictory/", "platform": "", "project_url": "https://pypi.org/project/valedictory/", "project_urls": { "Bug Tracker": "https://github.com/timheap/valedictory/issues", "Documentation": "https://valedictory.readthedocs.io", "Homepage": "https://github.com/timheap/valedictory/", "Source Code": "https://github.com/timheap/valedictory" }, "release_url": "https://pypi.org/project/valedictory/0.9.0/", "requires_dist": null, "requires_python": "", "summary": "Validate dicts against a schema", "version": "0.9.0" }, "last_serial": 5894006, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "ac9388eaf8d5ead3784a243fb0dfa8fb", "sha256": "956137283781d2ae82bfb6bbb67f3a89decf60eabaa23509d3df35a63a1b0ebe" }, "downloads": -1, "filename": "valedictory-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ac9388eaf8d5ead3784a243fb0dfa8fb", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 19475, "upload_time": "2016-05-10T05:27:29", "url": "https://files.pythonhosted.org/packages/e0/d0/be86d52507daa66067a148600cf485417635c08ce4711ac13a537d2de2c0/valedictory-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b11d1b26d00794baab6f8517434d4d3", "sha256": "016620d3fd801485e0a906f17312ab7eab97359863bb8e810c5f3776397ce83d" }, "downloads": -1, "filename": "valedictory-0.0.0.tar.gz", "has_sig": false, "md5_digest": "4b11d1b26d00794baab6f8517434d4d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14586, "upload_time": "2016-05-10T04:41:09", "url": "https://files.pythonhosted.org/packages/3d/8f/12428a8d2888003aae962a6b296d51b1b9d33b9d5deb6ddfda8f38a24d63/valedictory-0.0.0.tar.gz" } ], "0.1.0": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "daed0e4d3eedaf5aa84d4b3c461c897b", "sha256": "463817b067ef27dd0c71512281022ed8a82fb083e74daa5d95a6d0ed229fa345" }, "downloads": -1, "filename": "valedictory-0.2.0.tar.gz", "has_sig": false, "md5_digest": "daed0e4d3eedaf5aa84d4b3c461c897b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10481, "upload_time": "2015-06-23T07:02:10", "url": "https://files.pythonhosted.org/packages/e7/d2/3d5f3530487486db6f5f92be18c3abca660f07ca9cea39aedd8379c4757b/valedictory-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "38fa0d33ce9b48b21f40e6459608025c", "sha256": "09198f823ba89f713f73fa322e64bf91ced83ee26deac089e213dd34034fb044" }, "downloads": -1, "filename": "valedictory-0.3.0.tar.gz", "has_sig": false, "md5_digest": "38fa0d33ce9b48b21f40e6459608025c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10933, "upload_time": "2015-06-24T04:41:44", "url": "https://files.pythonhosted.org/packages/1b/e5/078eccb3ea9747703e156de86ad01de43c11238aa5db243362b8c6611e37/valedictory-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "0e12c7c2116cdcdf3381d8731c14d9c4", "sha256": "ca08e7f60a18c0228754bd64f9ec65b2b59e43cd06fc2df787bf98bfee2bfc9f" }, "downloads": -1, "filename": "valedictory-0.3.1.tar.gz", "has_sig": false, "md5_digest": "0e12c7c2116cdcdf3381d8731c14d9c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12478, "upload_time": "2015-07-07T00:41:17", "url": "https://files.pythonhosted.org/packages/f4/6c/b73d5d0cea1934bd92e7330b69ddcfb07324a6bbdde96d4541770498b439/valedictory-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "789f3253da9c0f1ae5a197c553702e15", "sha256": "9ee5721a92a667a611f2a7ff320d4169730b9c22c1ac3ddaaebee4f799887000" }, "downloads": -1, "filename": "valedictory-0.4.0.tar.gz", "has_sig": false, "md5_digest": "789f3253da9c0f1ae5a197c553702e15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12931, "upload_time": "2015-07-09T06:51:09", "url": "https://files.pythonhosted.org/packages/f2/2c/94b2a9399483e2c8f540d556012ede2acaf9504d971035f5a9029b832edd/valedictory-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "5f67338604bff9f343a620d59438d691", "sha256": "9b65bcc45c909e43deef5d62b043c3127ed530f75916b1e48dc79a9b3456ef10" }, "downloads": -1, "filename": "valedictory-0.5.0.tar.gz", "has_sig": false, "md5_digest": "5f67338604bff9f343a620d59438d691", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13976, "upload_time": "2015-07-23T02:33:49", "url": "https://files.pythonhosted.org/packages/22/0c/eb549d20f19e4582e53373db795a0b4f3254cabc727e5d86205a93a9d8dd/valedictory-0.5.0.tar.gz" } ], "0.5.0.b1": [ { "comment_text": "", "digests": { "md5": "8f96a57c905539b02e969e57c90e69ee", "sha256": "71761e913864ce0bd6c0485a39e8ef4bcf92a33cd68ace3616815f44d556643b" }, "downloads": -1, "filename": "valedictory-0.5.0.b1.tar.gz", "has_sig": false, "md5_digest": "8f96a57c905539b02e969e57c90e69ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13068, "upload_time": "2015-07-23T00:16:42", "url": "https://files.pythonhosted.org/packages/c4/4f/8f7cd1c769cf0aedfed14a94d6c62b4b4217c5de67b6d36db203a900e5c3/valedictory-0.5.0.b1.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5fbf2096494f5b11e63617d3f61e3ce7", "sha256": "6e1165a5bf6615781852ad4a2279fea2d530aa0e1b08ebe1497c0b52df112513" }, "downloads": -1, "filename": "valedictory-0.5.1.tar.gz", "has_sig": false, "md5_digest": "5fbf2096494f5b11e63617d3f61e3ce7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13958, "upload_time": "2015-09-23T01:25:44", "url": "https://files.pythonhosted.org/packages/69/22/2eaca7d332cbd7e31019b83d57b18373473f46c9d002351640a54ec4ed04/valedictory-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "0668edcebe5b6a2fccdaab5423527d44", "sha256": "62569444b05cc91a4f22cd1b708453d96f0d3dc2d1949182d2b0aea2cc3129bc" }, "downloads": -1, "filename": "valedictory-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0668edcebe5b6a2fccdaab5423527d44", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 19476, "upload_time": "2016-05-10T06:33:15", "url": "https://files.pythonhosted.org/packages/43/94/d4579ce5049ee6a5df1b3c1988f379139ef56d3edc04db75f03ee492c14c/valedictory-0.5.2-py3-none-any.whl" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "2b0df69aee3d87551caf1dededd96ffe", "sha256": "f40701961ef156e70f5c4924c3376db650a1ccc72c2de0757852d7d294aa39d9" }, "downloads": -1, "filename": "valedictory-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2b0df69aee3d87551caf1dededd96ffe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19880, "upload_time": "2018-06-13T04:56:04", "url": "https://files.pythonhosted.org/packages/e0/1f/8a5593c0f70133784c33634c4add45efd250eb1342c02caa5ac3bf81f481/valedictory-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "649a547d0fdc707074478fa0c75f152e", "sha256": "5c21b4d3f3d7ebfe1a6337eeeab873f6016874cce73981541d738e3c4159eb60" }, "downloads": -1, "filename": "valedictory-0.6.0.tar.gz", "has_sig": false, "md5_digest": "649a547d0fdc707074478fa0c75f152e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16357, "upload_time": "2018-06-13T04:56:06", "url": "https://files.pythonhosted.org/packages/5c/10/10812b63869e6e16a0b645c4baf46c851359f26d40b96fe3c323c4d9fc00/valedictory-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "27bdd0fb4b5babb2cd8d39cb917afb47", "sha256": "ead59e3dad9fa2578c3b35722d1271d3f6daafd908b322418437ef4cb7d684fa" }, "downloads": -1, "filename": "valedictory-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "27bdd0fb4b5babb2cd8d39cb917afb47", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20577, "upload_time": "2018-06-19T04:10:41", "url": "https://files.pythonhosted.org/packages/d2/26/b9237ed972e4d10f8e19091fd94db612d54308ac252b0388c8b0b3348315/valedictory-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae06b2cfa122b91bae30a6cd12229514", "sha256": "f9c47db0d70157cdf3bc3978038c9f0ffc2aa861479e1ccfd52e240b71ab4c51" }, "downloads": -1, "filename": "valedictory-0.7.0.tar.gz", "has_sig": false, "md5_digest": "ae06b2cfa122b91bae30a6cd12229514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17019, "upload_time": "2018-06-19T04:10:42", "url": "https://files.pythonhosted.org/packages/c8/ae/ee255e122172eb6c32acbfd88ce8035fcde209e05e68dd8c46e65495c82a/valedictory-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "546c74e3c9c613358ea3d36e2afe739d", "sha256": "4c048ee36e53b28a39aa75e663b26121ffca20a9dc930cacf62ce82b61267371" }, "downloads": -1, "filename": "valedictory-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "546c74e3c9c613358ea3d36e2afe739d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20789, "upload_time": "2018-10-31T03:08:57", "url": "https://files.pythonhosted.org/packages/ab/8e/e76815ecd3f69260593a2549742f0ef9ea9a5ebee9fd9f59fe771cae8997/valedictory-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb5408499f8098df218c1cfadb71e4d2", "sha256": "901842f7ec988bd285fe3aa4e5591dd3bbfb108076e08b0d5e6f5d64b451e419" }, "downloads": -1, "filename": "valedictory-0.8.0.tar.gz", "has_sig": false, "md5_digest": "bb5408499f8098df218c1cfadb71e4d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17236, "upload_time": "2018-10-31T03:08:59", "url": "https://files.pythonhosted.org/packages/72/b7/f26efceb2052b2fa326a89199a471ad5ed4adc60cf4ab8ddf2e822f5493f/valedictory-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "ddbf6ca4dcd793bff9fec3d9ca66bf9b", "sha256": "39406026bd9ef02f2fa075752e57901a6cf29d0609120f2ba5638539412fe092" }, "downloads": -1, "filename": "valedictory-0.9.0.tar.gz", "has_sig": false, "md5_digest": "ddbf6ca4dcd793bff9fec3d9ca66bf9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17949, "upload_time": "2019-09-27T04:07:26", "url": "https://files.pythonhosted.org/packages/1e/f9/37448f23d3de4fa14d0fef040a3535aec81020be56a3cecea58e6b184ee4/valedictory-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ddbf6ca4dcd793bff9fec3d9ca66bf9b", "sha256": "39406026bd9ef02f2fa075752e57901a6cf29d0609120f2ba5638539412fe092" }, "downloads": -1, "filename": "valedictory-0.9.0.tar.gz", "has_sig": false, "md5_digest": "ddbf6ca4dcd793bff9fec3d9ca66bf9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17949, "upload_time": "2019-09-27T04:07:26", "url": "https://files.pythonhosted.org/packages/1e/f9/37448f23d3de4fa14d0fef040a3535aec81020be56a3cecea58e6b184ee4/valedictory-0.9.0.tar.gz" } ] }