{ "info": { "author": "Exahilosys", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "## Usage\n```py\nimport shucks\nimport functools\nimport string\n\n# custom check\ndef title(data):\n\n letter = data[0]\n\n if letter in string.ascii_uppercase:\n\n return\n\n # throw error if something's wrong\n raise shucks.Error('title', letter)\n\n# schema\nhuman = {\n 'gold': int,\n 'name': shucks.And(\n str,\n # prebuilt checks\n shucks.range(1, 32),\n # callables used with just data\n title\n ),\n 'animal': shucks.Or(\n 'dog',\n 'horse',\n 'cat'\n ),\n 'sick': bool,\n 'items': [\n {\n 'name': str,\n 'worth': float,\n # optional key\n shucks.Opt('color'): str\n },\n # infinitely check values with last schema\n ...\n ]\n}\n\ndata = {\n 'gold': 100,\n 'name': 'Merida',\n 'animal': 'horse',\n 'sick': False,\n 'items': [\n {\n 'name': 'Arrow',\n 'worth': 2.66,\n 'color': 'silver'\n },\n {\n 'name': 'Bow',\n # not float\n 'worth': 24,\n 'color': 'brown'\n }\n ]\n}\n\ntry:\n\n shucks.validate(human, data, auto = True)\n\nexcept shucks.Error as error:\n\n for error in error.chain:\n\n print(error)\n```\n```py\n>>> Error(value: 'items') # in the value of the \"items\" key\n>>> Error(index: 1) # on the first entry of the array\n>>> Error(value: 'worth') # on the value of the \"worth\" key\n>>> Error(type: , ) # expected float but got int\n```\n## Installing\n```\npython3 -m pip install shucks\n```\n\n\n", "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/Exahilosys/shucks", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "shucks", "package_url": "https://pypi.org/project/shucks/", "platform": "", "project_url": "https://pypi.org/project/shucks/", "project_urls": { "Homepage": "https://github.com/Exahilosys/shucks" }, "release_url": "https://pypi.org/project/shucks/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "Mini schema validator.", "version": "0.1.1" }, "last_serial": 5667402, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "9ad7c0a13d606656324233c7ccb1a462", "sha256": "d2ce504ee7aa7c00869d3e9b6b4db41758c0b826c31011fe39fa8544c0f7f2b2" }, "downloads": -1, "filename": "shucks-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9ad7c0a13d606656324233c7ccb1a462", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2662, "upload_time": "2019-04-24T14:45:17", "url": "https://files.pythonhosted.org/packages/95/fd/97eb777b652a0b583ef87f449d6f13d98ce56fb8aba913e95cd4fd1cebfa/shucks-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "131a2d94ac447b7200f6f871d3bfb421", "sha256": "09015802ef043934fed67bfb08f1a41c12594edd8e80ac350587d5002944c467" }, "downloads": -1, "filename": "shucks-0.0.0.tar.gz", "has_sig": false, "md5_digest": "131a2d94ac447b7200f6f871d3bfb421", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1979, "upload_time": "2019-04-24T14:45:19", "url": "https://files.pythonhosted.org/packages/43/64/993292494e888611dbb489032fd3c5034521ffc5541d83ad4fbc4bcd167e/shucks-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "2209d5df1969543875d3c1698b413ff7", "sha256": "0424ac8d59c00ac76a74f2574ec4e0d9f1a7fa3a1b17920b40849fe06f7cba56" }, "downloads": -1, "filename": "shucks-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2209d5df1969543875d3c1698b413ff7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2662, "upload_time": "2019-04-26T10:59:44", "url": "https://files.pythonhosted.org/packages/c0/49/b056cfefa3ea70e4183da4a5e24587bfdfb0d700d61bc13fb7045fe1d4bc/shucks-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f92334ef46f35865c617ba5addba0b1", "sha256": "c290d5366f6cce5b1c37d42a51ecbf5b4f5e21fc068e5c17eb967e24f9c83183" }, "downloads": -1, "filename": "shucks-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7f92334ef46f35865c617ba5addba0b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1968, "upload_time": "2019-04-26T10:59:45", "url": "https://files.pythonhosted.org/packages/6e/35/2acb73b99332a9294288634cbce41edf7e17a1cee7ec5e2d4700e2e6c44e/shucks-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4f6ba17516468b56ccc9c3c511eb33cc", "sha256": "47bbd2b39ba01cb8a49f6b196fe7c83b5f53d14b017df222566c56b211a82a93" }, "downloads": -1, "filename": "shucks-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4f6ba17516468b56ccc9c3c511eb33cc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3933, "upload_time": "2019-04-26T12:57:11", "url": "https://files.pythonhosted.org/packages/48/e3/2ca1fb84dd8af629f4e6c978ec57e86460747b03bd9b091e2e5ef69a0cd1/shucks-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43cd4c4ee7871263964c702125c66726", "sha256": "ff12d5a0a640d936a4678eebdf57c12ba1b4ab4c602fab497de7ea8ab61226cd" }, "downloads": -1, "filename": "shucks-0.0.2.tar.gz", "has_sig": false, "md5_digest": "43cd4c4ee7871263964c702125c66726", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3075, "upload_time": "2019-04-26T12:57:14", "url": "https://files.pythonhosted.org/packages/36/54/6f50f8aaac88f0ae71da9134f2dc09d922e23e77715b1923bd2243af1f55/shucks-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "10f5ef36c19e16f0c5845185df100c3e", "sha256": "cb7304b96df410af5599de4461dc966ccbf5caa7441a772157fbbc04ac4064aa" }, "downloads": -1, "filename": "shucks-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "10f5ef36c19e16f0c5845185df100c3e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3940, "upload_time": "2019-04-27T17:22:59", "url": "https://files.pythonhosted.org/packages/0f/03/36b9b9e9a5d07433418ab9359a5dba0d0ef6621dfd6cfd8b7bdc04e83fb5/shucks-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7be25b7915db27943d1f48d6a389309d", "sha256": "437db2a96a3da9c8bf0e342b63db222b792eb2f2073facc684baaff329699d6d" }, "downloads": -1, "filename": "shucks-0.0.3.tar.gz", "has_sig": false, "md5_digest": "7be25b7915db27943d1f48d6a389309d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3075, "upload_time": "2019-04-27T17:23:02", "url": "https://files.pythonhosted.org/packages/db/ff/a5010cb595734ceb1a9d2fdcebe20069d511932ba0a265badf9435ba39f6/shucks-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "db47f89517ea9e4e7c486cdee56dee8e", "sha256": "9c0a9a2cfed1debc420794721cfa31a9f35f2e38b0799dc3608214c3da5ae1be" }, "downloads": -1, "filename": "shucks-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "db47f89517ea9e4e7c486cdee56dee8e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5826, "upload_time": "2019-07-16T17:15:11", "url": "https://files.pythonhosted.org/packages/26/2e/b4f29d35a4c75caf004567e3e3179edb5d2b470edf59364aa7c1a5592939/shucks-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c13299b7132220def22f28e70d94f30", "sha256": "e71b79b913c31c43f20fd474bf6c5717ad6e4e130ec6d896020a97334ea1eafe" }, "downloads": -1, "filename": "shucks-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8c13299b7132220def22f28e70d94f30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3272, "upload_time": "2019-07-16T17:15:13", "url": "https://files.pythonhosted.org/packages/3d/ec/438dc38aa1750073bb01b1ee0b7d80cc0712dd7834a60caaa913eee18f0b/shucks-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "bb31d48fcfda17e7f5154e6703250da4", "sha256": "bc3b8d0a9e1793e3aa202fa62f3aaba012834c31628e34490dd09617b9a57ef0" }, "downloads": -1, "filename": "shucks-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bb31d48fcfda17e7f5154e6703250da4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5791, "upload_time": "2019-08-12T16:11:39", "url": "https://files.pythonhosted.org/packages/e6/e6/0677671efb27ad1f5d29373e5a4383b0c45bfafb91637a055e1dbbf63830/shucks-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51fccd17b450cfed93fa88916631b467", "sha256": "e146646b9fbda632a709f09dd20d9664035c4585ea20e7c1d4c3f942fca3abf2" }, "downloads": -1, "filename": "shucks-0.1.1.tar.gz", "has_sig": false, "md5_digest": "51fccd17b450cfed93fa88916631b467", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3256, "upload_time": "2019-08-12T16:11:41", "url": "https://files.pythonhosted.org/packages/35/a0/ba0bba1594851efaab9b6317469a4852281e3e94368ca91427f1377926c7/shucks-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bb31d48fcfda17e7f5154e6703250da4", "sha256": "bc3b8d0a9e1793e3aa202fa62f3aaba012834c31628e34490dd09617b9a57ef0" }, "downloads": -1, "filename": "shucks-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "bb31d48fcfda17e7f5154e6703250da4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5791, "upload_time": "2019-08-12T16:11:39", "url": "https://files.pythonhosted.org/packages/e6/e6/0677671efb27ad1f5d29373e5a4383b0c45bfafb91637a055e1dbbf63830/shucks-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51fccd17b450cfed93fa88916631b467", "sha256": "e146646b9fbda632a709f09dd20d9664035c4585ea20e7c1d4c3f942fca3abf2" }, "downloads": -1, "filename": "shucks-0.1.1.tar.gz", "has_sig": false, "md5_digest": "51fccd17b450cfed93fa88916631b467", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3256, "upload_time": "2019-08-12T16:11:41", "url": "https://files.pythonhosted.org/packages/35/a0/ba0bba1594851efaab9b6317469a4852281e3e94368ca91427f1377926c7/shucks-0.1.1.tar.gz" } ] }