{ "info": { "author": "rcj1492", "author_email": "support@collectiveacuity.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3.5" ], "description": ".. image:: https://img.shields.io/pypi/v/jsonmodel.svg\n :target: https://pypi.python.org/pypi/jsonmodel\n.. image:: https://img.shields.io/pypi/l/jsonmodel.svg\n :target: https://pypi.python.org/pypi/jsonmodel\n\n=========\njsonModel\n=========\n*A Collection of Methods for Validating JSON Structured Data*\n\n:Downloads: http://pypi.python.org/pypi/jsonModel\n:Source: https://github.com/collectiveacuity/jsonModel\n:Documentation: https://collectiveacuity.github.io/jsonModel/\n\n============\nIntroduction\n============\nJson Model is designed to facilitate the process of implementing data validation against a declared json data model. The jsonModel class offers a more intuitive declaration process than other schema enforcement modules currently available by relying upon the architecture of json itself to validate datatypes, requirements and defaults.\n\n============\nInstallation\n============\nFrom PyPi::\n\n $ pip install jsonmodel\n\nFrom GitHub::\n\n $ git clone https://github.com/collectiveacuity/jsonmodel\n $ cd jsonmodel\n $ python setup.py install\n\n\nGetting Started\n---------------\nThis module uses self-valid schema declarations as a method to describe data requirements. As a result, for many data models, full validation can be achieved from an example declaration using the schema key::\n\n\n {\n \"schema\": {\n \"userID\": \"gY3Cv81QwL0Fs\",\n \"datetime\": 1456000345.543713,\n \"active\": true,\n \"address\": {\n \"city\": \"New Orleans\",\n \"region\": \"LA\",\n \"postal_code\": \"\",\n \"country\": \"United States\"\n }\n }\n }\n\n*[In this model, the input must contain values for all four top level keys and each value must correspond to the datatype in the model. So, the input must have a userID field with a string, a datetime field with a number, an active key with a boolean and the address field must be a dictionary which itself contains city, region and country values. Since it is empty, postal_code is optional. If a value is provided for postal_code however, it must be a string.]*\n\nIn addition to intuitive self-valid schema declarations, jsonModel also offers a rich way to further refine the conditionality of any property in the model through an accompanying components map whose key names correspond to the path to the schema property which requires additional validation::\n\n {\n \"schema\": { ... },\n \"components\": {\n \"userID\": {\n \"min_length\": 13,\n \"max_length\": 13,\n \"must_not_contain\": [ \"[^\\\\w]\", \"_\" ]\n },\n \"address.city\": {\n \"discrete_values\": [ \"New Orleans\", \"New York\", \"Los Angeles\", \"Miami\" ],\n \"required_field\": false\n }\n }\n }\n\n\n*[In this model, the process of checking the inputs will also check the paths designated in the components dictionary to make sure that values do not violate any of the additional attributes of the property declared in the components. Whenever they may conflict with the attributes declared in the schema example, the conditions in the components map supersedes. So, in this case, the requirement that an address contain a city key-value has been turned off. But if a city is provided, it must match one of the four city values provided. Likewise, any value provided in userID must be no more than nor less than 13 characters long and can only be composed of alphanumerical characters.]*\n\nThis module also validates the architecture of the model declarations themselves to facilitate the model design process and ensure that no models break the rules of the module. Error reports are provided to identity the scope of conditionals applicable to any given property in addition to the module documentation.\n\nTo declare the model::\n\n {\n \"schema\": {\n \"property\": \"value\"\n },\n \"components\": {},\n \"title\": \"my cool data model\",\n \"description\": \"model for performance analytics records of my sweet app\",\n \"metadata\": { \"version\": \"1.1.1\" },\n \"url\": \"https://collectiveacuity.com/api/mycoolresource?jsonmodel=true\",\n \"max_size\": 1024,\n }\n\n*[all fields except schema are optional]*\n\nTo import the schema::\n\n import json\n\n sample_schema = json.loads(open('sample-schema.json').read())\n\n\nTo initialize the class object::\n\n from jsonmodel.validators import jsonModel\n\n valid_model = jsonModel(sample_schema)\n\n\nTo validate input against model declaration::\n\n valid_model.validate(input)\n\n\nTo validate input against an individual component::\n\n path_to_root = 'dot.path[2].field'\n valid_model.validate(input, path_to_root)\n\n\nTo handle invalid inputs::\n\n try:\n valid_model.validate(invalid_input)\n except InputValidationError as err:\n assert err.error['error_code'] > 4000\n\n\nTo customize error message::\n\n input_title = 'Property field in input'\n valid_model.validate(input, path_to_root, input_title)\n\n\nTo filter valid input based upon query criteria::\n\n query_criteria = { 'dot.path[2].field': 'exact value' }\n assert valid_model.query(query_criteria, valid_input)\n\n query_criteria = { 'dot.path[2].field': { 'excluded_values': [ 'exact value' ] } }\n assert not valid_model.query(query_criteria, valid_input)\n\n\nTo produce html documentation of model criteria::\n\n from jsonmodel.extensions import tabulate\n tabulate(valid_model)\n html_table = valid_model.tabulate()\n\n\nFurther Reading\n---------------\nFor more details about how to use jsonModel, refer to the\n`Reference Documentation on GitHub\n`_\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collectiveacuity/jsonModel", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "jsonmodel", "package_url": "https://pypi.org/project/jsonmodel/", "platform": "", "project_url": "https://pypi.org/project/jsonmodel/", "project_urls": { "Homepage": "https://github.com/collectiveacuity/jsonModel" }, "release_url": "https://pypi.org/project/jsonmodel/3.0/", "requires_dist": null, "requires_python": "", "summary": "A Collection of Methods for Validating JSON Structured Data", "version": "3.0" }, "last_serial": 3714420, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "b550b393357fdb3ff16ed5e205bb82db", "sha256": "a4d897ff80753b23b5d9f4ecb4a9ac6ed36fcf448595653a8d6ea4697ff129c9" }, "downloads": -1, "filename": "jsonmodel-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b550b393357fdb3ff16ed5e205bb82db", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 14917, "upload_time": "2016-01-28T01:13:07", "url": "https://files.pythonhosted.org/packages/4f/70/3a5a1e42a053b475280115650ac0d6a10b9883b93c201495a45e5f91da43/jsonmodel-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c27a95d9fb538451f145a528b9f7ae2", "sha256": "893454ce5ac7d80e0736ad52e6ab2a05697851433658cf3946b408e04447b90a" }, "downloads": -1, "filename": "jsonmodel-1.0.tar.gz", "has_sig": false, "md5_digest": "2c27a95d9fb538451f145a528b9f7ae2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13452, "upload_time": "2016-01-28T00:54:59", "url": "https://files.pythonhosted.org/packages/06/b1/df19c2ed5319d2166d799264f6b6d43935460f0a43fa31f2b49269084fa3/jsonmodel-1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "114d342492180e496acf28d5a01ea4ed", "sha256": "e4c25086121a6deb9ce67444b78862c9bde327b80a97d15b7181e5efaf2b3d1e" }, "downloads": -1, "filename": "jsonmodel-1.0.zip", "has_sig": false, "md5_digest": "114d342492180e496acf28d5a01ea4ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20566, "upload_time": "2016-01-28T00:54:12", "url": "https://files.pythonhosted.org/packages/02/e8/be837798de162aafb4edeae907e3a90622da74fcde9b335b7f672e524c9f/jsonmodel-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "82c4cc6a8c670595d80c450d821da63a", "sha256": "132e66a01f2b6f269e1fcabc113e6ecad154f62e090fa97107b6be88fda7861c" }, "downloads": -1, "filename": "jsonmodel-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "82c4cc6a8c670595d80c450d821da63a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15038, "upload_time": "2016-03-05T21:54:58", "url": "https://files.pythonhosted.org/packages/fa/80/2a4b2b7e4fc701e7d09675484543c807ac8fc4ef0267252143fd655cdc83/jsonmodel-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f0caa273691279e6493aa590f3c33b2", "sha256": "ae860571c19c0c4eab8366faad0094c6b80f98439616f3081f638a25f95efc39" }, "downloads": -1, "filename": "jsonmodel-1.1.tar.gz", "has_sig": false, "md5_digest": "8f0caa273691279e6493aa590f3c33b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13937, "upload_time": "2016-03-05T21:55:11", "url": "https://files.pythonhosted.org/packages/00/4f/c7db65720ece19d0b7edbac3411039f4652a118f4b3808e55ad966ee1ba7/jsonmodel-1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "4a624ad3e8ad2c21faae3c3ce0727ecc", "sha256": "b630e4edca4f0f07d2ed82ebc5dacdba4f46fedb069c6cba3645870bbffe717a" }, "downloads": -1, "filename": "jsonmodel-1.1.zip", "has_sig": false, "md5_digest": "4a624ad3e8ad2c21faae3c3ce0727ecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21326, "upload_time": "2016-03-05T21:55:16", "url": "https://files.pythonhosted.org/packages/f1/9f/4b644c4fe05f13755c6c175393069288374161d76c87b4f4953aabbff59a/jsonmodel-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "41b4d67766c9f719f983a45d627a2c15", "sha256": "7d96bb06d1cc38f9314414ceea87d3b0b2409855bf18fc660297becc74d23948" }, "downloads": -1, "filename": "jsonmodel-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "41b4d67766c9f719f983a45d627a2c15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15760, "upload_time": "2016-03-18T16:10:20", "url": "https://files.pythonhosted.org/packages/c7/15/09061c383bbf52be2745ef6a465acf0e19c2490c945f55b24941b449fb50/jsonmodel-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78cb81ca31fce8c34ffe48b340d2332d", "sha256": "1c7d2aa2c19d1c22311d39e888f044511def3a11cb27a23ec9556f96cb6bc5c0" }, "downloads": -1, "filename": "jsonmodel-1.2.tar.gz", "has_sig": false, "md5_digest": "78cb81ca31fce8c34ffe48b340d2332d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14984, "upload_time": "2016-03-18T16:10:28", "url": "https://files.pythonhosted.org/packages/d2/b6/2d78ca67858533ab4614a01cfb167614f2f2207043072bd87165e334db89/jsonmodel-1.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "0496d6155a7c021047af539e850c0dc8", "sha256": "1d74b1bb047cbeb1aeaa75c181e8970714991938caf1c37bf18d78b2df7977c5" }, "downloads": -1, "filename": "jsonmodel-1.2.zip", "has_sig": false, "md5_digest": "0496d6155a7c021047af539e850c0dc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22583, "upload_time": "2016-03-18T16:10:37", "url": "https://files.pythonhosted.org/packages/bf/2a/bc92312a6feb97207b52ffcaa2d3988897bd8c1f96b2374994f1b44b4cb6/jsonmodel-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "9edc4a9b84d0657c87523c7d8bfcd485", "sha256": "d1d37a158760a1e28b80e9f43379aedfffb13b7d29a759093424cadd676f46c7" }, "downloads": -1, "filename": "jsonmodel-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "9edc4a9b84d0657c87523c7d8bfcd485", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17774, "upload_time": "2016-03-20T19:25:46", "url": "https://files.pythonhosted.org/packages/fa/fa/6892812027cf89eb2a89946fa20b92d9bc7b79392479520a2287271958b3/jsonmodel-1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72e02be3a9cd158e0e2f62a76c2b65cc", "sha256": "78e429f8a847008c78cc004ee6a552741577409445e16b47128fdd588a825b0f" }, "downloads": -1, "filename": "jsonmodel-1.3.tar.gz", "has_sig": false, "md5_digest": "72e02be3a9cd158e0e2f62a76c2b65cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17336, "upload_time": "2016-03-20T19:26:06", "url": "https://files.pythonhosted.org/packages/44/cf/b2b40622bc487d07dc7057b09e7423e154abddf3044f45f0ccef44e651e9/jsonmodel-1.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "3ed44040e629c876f0b3f068ec9a5a5a", "sha256": "28f1f076488c349b1c73263098026d4ca1b12eb830eb10d8bbffda1fb804f6b7" }, "downloads": -1, "filename": "jsonmodel-1.3.zip", "has_sig": false, "md5_digest": "3ed44040e629c876f0b3f068ec9a5a5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26011, "upload_time": "2016-03-20T19:26:26", "url": "https://files.pythonhosted.org/packages/c8/43/2c3679eef73b5c62e524474f986f1c1e2fffe46c039ce84199c666ee37a3/jsonmodel-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "030b181f21000edab11cae34d1b1d2ce", "sha256": "123c7fdfe6a90a5e870cbe44fcfd06d9c3a24cbb817c25bbdf4332d5be89cd63" }, "downloads": -1, "filename": "jsonmodel-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "030b181f21000edab11cae34d1b1d2ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17783, "upload_time": "2016-03-24T00:46:13", "url": "https://files.pythonhosted.org/packages/8a/e5/58c7c4775c2d69d05f3839bda491b9402e10ea7464789bcb7257c213f5db/jsonmodel-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67a8654e036e63d4f66b5a8299f0dd6e", "sha256": "940c4331e3238d30c5c12f234f2066970149f45289ab4ad628403f12d30040de" }, "downloads": -1, "filename": "jsonmodel-1.4.tar.gz", "has_sig": false, "md5_digest": "67a8654e036e63d4f66b5a8299f0dd6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17560, "upload_time": "2016-03-24T00:46:19", "url": "https://files.pythonhosted.org/packages/3a/55/e1e0b5387fa5cd1476205fb49659446b7839082bb5aa3152b0c7e2fc6f1b/jsonmodel-1.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "c734766a4dd5bca88a4c3d5c51b02c2e", "sha256": "14fa18e7750daca076895e8989c14005f63941a01698adab859c70cd1fb5aa48" }, "downloads": -1, "filename": "jsonmodel-1.4.zip", "has_sig": false, "md5_digest": "c734766a4dd5bca88a4c3d5c51b02c2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26261, "upload_time": "2016-03-24T00:46:24", "url": "https://files.pythonhosted.org/packages/7d/58/32076689aafbf0ba04e5efb8bc9e867c610e29bb927b658312aadd041cec/jsonmodel-1.4.zip" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "ff05ebdcc0cedc130cc411dcca7fd00a", "sha256": "98718e296fef135fe89faeaca27c52fb37d37cab66eb563ed114e577f2ec8559" }, "downloads": -1, "filename": "jsonmodel-1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ff05ebdcc0cedc130cc411dcca7fd00a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17859, "upload_time": "2016-03-26T17:07:58", "url": "https://files.pythonhosted.org/packages/75/9d/cb5fd19252b53a1c6124ccd40c09e6429e23e9d39c31326eb8bdf5b3b86c/jsonmodel-1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae73a0cfbc44151f1cd2fdbd6a93c05b", "sha256": "5c737a789b9ea1aa1a761b1b0ebbd4ae66c109eb2b26fd87d62f0888571b33d9" }, "downloads": -1, "filename": "jsonmodel-1.5.tar.gz", "has_sig": false, "md5_digest": "ae73a0cfbc44151f1cd2fdbd6a93c05b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17734, "upload_time": "2016-03-26T17:08:13", "url": "https://files.pythonhosted.org/packages/f2/4a/8e4be86b8677ebe6251f3ea81499e374416c3e631fc8ecd25134e5f8f66e/jsonmodel-1.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "4cddf9e403843654a36c86a7b704163d", "sha256": "4049bd14f0e7cba769e616578d755a1614fb8f2eda6e06e417e3153aaceba8a7" }, "downloads": -1, "filename": "jsonmodel-1.5.zip", "has_sig": false, "md5_digest": "4cddf9e403843654a36c86a7b704163d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26437, "upload_time": "2016-03-26T17:08:22", "url": "https://files.pythonhosted.org/packages/48/7d/24027368bda7d74cd892b28ac0fa35c9640450527fa576b12f3d33db1a8f/jsonmodel-1.5.zip" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "62f8e331b9e737b83180f524c57d0488", "sha256": "d29f5ea735a9bf99652d24c456961c0e59053f37a06203d49869849fe1c4bfa8" }, "downloads": -1, "filename": "jsonmodel-1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "62f8e331b9e737b83180f524c57d0488", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17879, "upload_time": "2016-05-17T22:02:39", "url": "https://files.pythonhosted.org/packages/c7/68/71173996b69c73d075c468af6d3456d3710e03fb44b2927abb311afcc8c7/jsonmodel-1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67d72f7622b0b6bde29381e5fd082cbd", "sha256": "98233740008b333f10c8c9de93fba73fadb3bba32c934f21858d1344dd111c59" }, "downloads": -1, "filename": "jsonmodel-1.6.tar.gz", "has_sig": false, "md5_digest": "67d72f7622b0b6bde29381e5fd082cbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17810, "upload_time": "2016-05-17T22:02:53", "url": "https://files.pythonhosted.org/packages/4a/8b/ce5e080ed9e727ee282fd3ac596b64968caebd6ea750d709034d957382b1/jsonmodel-1.6.tar.gz" }, { "comment_text": "", "digests": { "md5": "030078af5e515971d58505b376237266", "sha256": "5ce8e6676bebc79d64fe9ae8328b7159d7d3ea527d413fab6ab92ceebe302d2d" }, "downloads": -1, "filename": "jsonmodel-1.6.zip", "has_sig": false, "md5_digest": "030078af5e515971d58505b376237266", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26527, "upload_time": "2016-05-17T22:03:11", "url": "https://files.pythonhosted.org/packages/44/b4/8bb6e050e6f2203bf4b714400ff20ac414c67a251db2febecc593bbf87d1/jsonmodel-1.6.zip" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "e45dfce5d7caecbe9fcabe847c141d39", "sha256": "b161eec1b081a6d71a25978c2812c3aa908c6a61de216f228f6b6a6c0a979927" }, "downloads": -1, "filename": "jsonmodel-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e45dfce5d7caecbe9fcabe847c141d39", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21654, "upload_time": "2016-07-02T22:13:33", "url": "https://files.pythonhosted.org/packages/ca/4d/321658415cc0b0c0cc9efeddb2f837912312dd68a9b48dc4898a0511925b/jsonmodel-2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00c6084fd7aeebec0cddb75f73f28576", "sha256": "276f4242162a24c2a8076fb8e709dc83269aa9a03e2f58b78482f427e4cdc8c5" }, "downloads": -1, "filename": "jsonmodel-2.0.tar.gz", "has_sig": false, "md5_digest": "00c6084fd7aeebec0cddb75f73f28576", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22772, "upload_time": "2016-07-02T22:13:37", "url": "https://files.pythonhosted.org/packages/df/05/ce3f79b1609e9fdce17a5e9350160eb9094d857e230d8ad8d227f266cd3a/jsonmodel-2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "3fabd2ec1e34eda02f855e270c697a3a", "sha256": "32186eec73daf5df097b41546864ab1df9cb60293ce1b3855800f7c5b3a9f186" }, "downloads": -1, "filename": "jsonmodel-2.0.zip", "has_sig": false, "md5_digest": "3fabd2ec1e34eda02f855e270c697a3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32748, "upload_time": "2016-07-02T22:13:41", "url": "https://files.pythonhosted.org/packages/d0/85/d0d5a2a2ca660ffdb5743b985e2a0ccf074c313164a3871178e57f3beff0/jsonmodel-2.0.zip" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "9f378bd140778ea7d6a60cec2336a388", "sha256": "be79ec59545e115e411aa958b71ea7b0e1c1de52c9ed208491a07d08aa05ab40" }, "downloads": -1, "filename": "jsonmodel-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9f378bd140778ea7d6a60cec2336a388", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21723, "upload_time": "2016-07-10T01:16:50", "url": "https://files.pythonhosted.org/packages/df/bb/36b9eda25cb03df4a0cc944e84d015bd11ebe46b2691d3f356e064bbae92/jsonmodel-2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af1e40a44450807f46716e22d3791fa3", "sha256": "cbba2792e070f4ea30ba7f43b89314e2aa8a2c2816d69516a32eed57e1a09c18" }, "downloads": -1, "filename": "jsonmodel-2.1.tar.gz", "has_sig": false, "md5_digest": "af1e40a44450807f46716e22d3791fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22862, "upload_time": "2016-07-10T01:16:55", "url": "https://files.pythonhosted.org/packages/0a/d5/95e01f25f758a0f7f06fc6078ebd1b5144208162e98b569623e45bf5bd1c/jsonmodel-2.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "dd4e43b1f460d11370a4aef5278427b7", "sha256": "8de12fa7d54833b4254ad4e95c8fbc78cf494e8914fe6bb53d4d611e3f7a68ed" }, "downloads": -1, "filename": "jsonmodel-2.1.zip", "has_sig": false, "md5_digest": "dd4e43b1f460d11370a4aef5278427b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32846, "upload_time": "2016-07-10T01:17:00", "url": "https://files.pythonhosted.org/packages/3e/ca/6e7e78e422c4625007777bcba5057641e4db2edb36dd1a2613ee4757bf48/jsonmodel-2.1.zip" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "8adf48978d5fc9abbeebc6e4921d86d2", "sha256": "c0b52507c908c1832f37c92b9eaa758ff6b42ebe10ca37b9a3161c1accfce547" }, "downloads": -1, "filename": "jsonmodel-2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8adf48978d5fc9abbeebc6e4921d86d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21732, "upload_time": "2016-07-10T15:25:39", "url": "https://files.pythonhosted.org/packages/0d/55/b5118999231e5658553505d576a79695caf67d0f7ed6af83aad9d3b2abe3/jsonmodel-2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e4053f2bf6ce658cc3e89f32c705425c", "sha256": "47135d84a532de855a6bd9857eca12bf9ec6e96467b36abc94b1ef4c58996fbe" }, "downloads": -1, "filename": "jsonmodel-2.2.tar.gz", "has_sig": false, "md5_digest": "e4053f2bf6ce658cc3e89f32c705425c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22894, "upload_time": "2016-07-10T15:25:43", "url": "https://files.pythonhosted.org/packages/65/df/1c93506deeef666e922d236c284a4b23400f5e5a38e48f7d0f45e429e27d/jsonmodel-2.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "8fb375cabdfc1ead1bb98b50efdd4718", "sha256": "5720c3b36f336dd4897739a471e280c4142ea9b8ffcc6197ed6b2cf1b02f837f" }, "downloads": -1, "filename": "jsonmodel-2.2.zip", "has_sig": false, "md5_digest": "8fb375cabdfc1ead1bb98b50efdd4718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32882, "upload_time": "2016-07-10T15:25:47", "url": "https://files.pythonhosted.org/packages/44/21/a9e0c0264f81a58881f92e97492e30411d1d3ec6ef01abb8a5a3c1f57ca2/jsonmodel-2.2.zip" } ], "2.4": [ { "comment_text": "", "digests": { "md5": "5b7c28e313315406ed33aef4f1be8575", "sha256": "8f9c0343d7cd09f0e1c8a5c5c74abedb23013975528a72e399fac26705ea08a3" }, "downloads": -1, "filename": "jsonmodel-2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5b7c28e313315406ed33aef4f1be8575", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22362, "upload_time": "2016-09-29T23:32:58", "url": "https://files.pythonhosted.org/packages/bb/5d/dc1ef4d148d6f12f7f69fce49679f895aa7ddc6766bc091fd02312d70ac1/jsonmodel-2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffbc77f848fbcfa941f6db19f16db824", "sha256": "84959f7df66db49865f207cc48c23db83692748c37ec73b65ce5a48a242aa636" }, "downloads": -1, "filename": "jsonmodel-2.4.tar.gz", "has_sig": false, "md5_digest": "ffbc77f848fbcfa941f6db19f16db824", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23507, "upload_time": "2016-09-29T23:33:02", "url": "https://files.pythonhosted.org/packages/22/6f/61bf63dc5452887ef5f1023a86f1361113dc66d812f52cbf30c8bbdfba3e/jsonmodel-2.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "b8dac3f03362c028974d6cce0d4bcac6", "sha256": "e90ee3a24a5690960d3fe836107f8336f1509575d5587800d553fe6cb3ff3995" }, "downloads": -1, "filename": "jsonmodel-2.4.zip", "has_sig": false, "md5_digest": "b8dac3f03362c028974d6cce0d4bcac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33574, "upload_time": "2016-09-29T23:33:04", "url": "https://files.pythonhosted.org/packages/ba/40/568668d69307e7d2a6f33dd13c3c80a44418d74bdf4956fbbf2b9583ba23/jsonmodel-2.4.zip" } ], "2.5": [ { "comment_text": "", "digests": { "md5": "e5cd7ff89aefb278f03e4c1dde38de81", "sha256": "b1de730953f1fb5bff2a8affca5a7b6b8bb10aae301689692cd955e5f1f390b5" }, "downloads": -1, "filename": "jsonmodel-2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e5cd7ff89aefb278f03e4c1dde38de81", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20713, "upload_time": "2016-10-25T18:28:15", "url": "https://files.pythonhosted.org/packages/6d/44/8b2b357d6faa03cbac43e9bbb1532c1635dfdd9be4a93c4ca2e3f47bcdd7/jsonmodel-2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "097b28d085b533a6030f88d9b19c9082", "sha256": "322f5e792b4764b42087023a7ec717317670dd90ad180b4e1501264b42c704c9" }, "downloads": -1, "filename": "jsonmodel-2.5.tar.gz", "has_sig": false, "md5_digest": "097b28d085b533a6030f88d9b19c9082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23681, "upload_time": "2016-10-25T18:28:18", "url": "https://files.pythonhosted.org/packages/4d/cb/18ef2b37b806fa666b18aa8b323c4d62a9cff3412929081e89c9af22f7ee/jsonmodel-2.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "80475321211ae7290beee78cb1bd3cc9", "sha256": "60f62b25ffa1c5046125313000960983ba95ab695d58da9fad2407662648d6e1" }, "downloads": -1, "filename": "jsonmodel-2.5.zip", "has_sig": false, "md5_digest": "80475321211ae7290beee78cb1bd3cc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33747, "upload_time": "2016-10-25T18:28:22", "url": "https://files.pythonhosted.org/packages/0f/6e/69ea97f1ee1427051b08899a42aa5d9f211f0b19b40f99ca9ea31b943c1e/jsonmodel-2.5.zip" } ], "2.6": [ { "comment_text": "", "digests": { "md5": "23078a0f1eadfaa97dd58e6981f9a25c", "sha256": "c4f0f161444ab995b918fe1ab0b0553774f2bd3aa3d1312a6508f0686175a772" }, "downloads": -1, "filename": "jsonmodel-2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "23078a0f1eadfaa97dd58e6981f9a25c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20756, "upload_time": "2016-12-09T01:22:12", "url": "https://files.pythonhosted.org/packages/65/d7/6baa2eebea33d8e494d924aad925e61687d2605fbdce8dda4bfd81bbcf17/jsonmodel-2.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23101fdba1ff74f190a7a923b435ff7e", "sha256": "a766a3c54da147256266ee3c5cd6d94a495eda79e8575f88040076e0ea7c0906" }, "downloads": -1, "filename": "jsonmodel-2.6.tar.gz", "has_sig": false, "md5_digest": "23101fdba1ff74f190a7a923b435ff7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23763, "upload_time": "2016-12-09T01:22:14", "url": "https://files.pythonhosted.org/packages/f8/d1/a00fb79181e90a74a4ae3b284c6fc66790d0ce4c516b8b208ecb19f3bfdb/jsonmodel-2.6.tar.gz" }, { "comment_text": "", "digests": { "md5": "f3b53975ae937def6ccbfdc71195001a", "sha256": "20dbc32e8d6990d8482c430217092d309cb2b0ee18fb5c70252370c08336360c" }, "downloads": -1, "filename": "jsonmodel-2.6.zip", "has_sig": false, "md5_digest": "f3b53975ae937def6ccbfdc71195001a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33855, "upload_time": "2016-12-09T01:22:15", "url": "https://files.pythonhosted.org/packages/38/6c/58955338ff20cea230749e9625c9ecd10bae39ae1e9f56bd9f52378a5c54/jsonmodel-2.6.zip" } ], "2.7": [ { "comment_text": "", "digests": { "md5": "c28ad6489f6fc955ec7ee72b5035d360", "sha256": "0cba87527dca30e9b69ce53b52a45cddb4af08611933f6bca48205b6e4ac027f" }, "downloads": -1, "filename": "jsonmodel-2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c28ad6489f6fc955ec7ee72b5035d360", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20786, "upload_time": "2016-12-12T18:03:13", "url": "https://files.pythonhosted.org/packages/ee/0f/3cac4630dea4e83b4d6ab4b95b543f85c98904aef9e61409bef686038678/jsonmodel-2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8d1593b8570f4ae753d9afb2d7c270a", "sha256": "8405e7bfa59ffb809a8e4c6e83fc9a302207c80d71d0f46bdb6d7c1a358129ee" }, "downloads": -1, "filename": "jsonmodel-2.7.tar.gz", "has_sig": false, "md5_digest": "a8d1593b8570f4ae753d9afb2d7c270a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23898, "upload_time": "2016-12-12T18:03:15", "url": "https://files.pythonhosted.org/packages/a0/da/a24982c7b1a1477330cd2569bf3fa20e7b995b71231d32ef395eec186b2c/jsonmodel-2.7.tar.gz" }, { "comment_text": "", "digests": { "md5": "310346200ceaa36e0758f49a15c13090", "sha256": "0efb97541a0316a46c30a31ad5e415bc8bf891c534f3664ad50b3c4245af14d9" }, "downloads": -1, "filename": "jsonmodel-2.7.zip", "has_sig": false, "md5_digest": "310346200ceaa36e0758f49a15c13090", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33989, "upload_time": "2016-12-12T18:03:16", "url": "https://files.pythonhosted.org/packages/c2/3f/7d5bb1470eea9917dc80a13c8c5f61b6cfce764a1e2c36361c1d5a607dbb/jsonmodel-2.7.zip" } ], "2.8": [ { "comment_text": "", "digests": { "md5": "bfa24e81a4fd1a090699bc6e821e557d", "sha256": "e33c1f37ac1564950583d9876552cedc506c6df0c0805fdd8836698fb905d7dc" }, "downloads": -1, "filename": "jsonmodel-2.8-py3-none-any.whl", "has_sig": false, "md5_digest": "bfa24e81a4fd1a090699bc6e821e557d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26559, "upload_time": "2017-12-12T15:36:51", "url": "https://files.pythonhosted.org/packages/20/22/9b6e9937f19e7d0e1126c5841e1f860faecffeccd49863a7ff6ad092d667/jsonmodel-2.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03b102acf12594dc99701d1a860d1464", "sha256": "228dee4fc859e616841d21eb42db04e936789aa15e7bc17d88cbf3ebfff715b8" }, "downloads": -1, "filename": "jsonmodel-2.8.tar.gz", "has_sig": false, "md5_digest": "03b102acf12594dc99701d1a860d1464", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31769, "upload_time": "2017-12-12T15:36:53", "url": "https://files.pythonhosted.org/packages/75/56/c022e16821fbbd8f992ed06ae0a0dc2f9dfebfdad64a7be48b0d9c46fb1e/jsonmodel-2.8.tar.gz" } ], "2.9": [ { "comment_text": "", "digests": { "md5": "a3be00eb9c1858ef65bc2750aeef5f1a", "sha256": "4d9ffb8f2b852a9cdf929a9b6703e5a860234e1f56ff805c5b2fd78e62734ead" }, "downloads": -1, "filename": "jsonmodel-2.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a3be00eb9c1858ef65bc2750aeef5f1a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27728, "upload_time": "2018-03-22T00:53:33", "url": "https://files.pythonhosted.org/packages/59/d4/04350dc39e49e7d45c37ad1b877ff4016fe173b8abe69bedac41aa5321c1/jsonmodel-2.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d2848aafd0a5c4033f4c06c1992c779", "sha256": "216fe3c6fc84058e6e05fbb28bb5c935f3240de7e57a683317208576f23575b3" }, "downloads": -1, "filename": "jsonmodel-2.9.tar.gz", "has_sig": false, "md5_digest": "7d2848aafd0a5c4033f4c06c1992c779", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33275, "upload_time": "2018-03-22T00:53:35", "url": "https://files.pythonhosted.org/packages/54/67/d93d4d2a7491e5c45768e647fda96b14f34808a471cafcbf43c555251574/jsonmodel-2.9.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "1a065e5d8a5b5bb8e29f955d1de31c74", "sha256": "21fc411573e88869695a4738fd530dcedc2e56da7f67c0f0e2f62bc12c4e24fa" }, "downloads": -1, "filename": "jsonmodel-3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1a065e5d8a5b5bb8e29f955d1de31c74", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31435, "upload_time": "2018-03-28T16:43:34", "url": "https://files.pythonhosted.org/packages/f5/18/d72336baf23b6a212d1331d20bc5b9a0720d15ae60502151aec56717362e/jsonmodel-3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc3e087dfe669caf58794862d4e10b11", "sha256": "6bddda3cbb7dfe845ccbeb606199e2c2d6ae92d667535e049e5af33f545f049f" }, "downloads": -1, "filename": "jsonmodel-3.0.tar.gz", "has_sig": false, "md5_digest": "cc3e087dfe669caf58794862d4e10b11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36307, "upload_time": "2018-03-28T16:43:35", "url": "https://files.pythonhosted.org/packages/e2/59/4d98e55bbc480177647082fe0f88199677cb34a6480da223e698a2bbe67b/jsonmodel-3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1a065e5d8a5b5bb8e29f955d1de31c74", "sha256": "21fc411573e88869695a4738fd530dcedc2e56da7f67c0f0e2f62bc12c4e24fa" }, "downloads": -1, "filename": "jsonmodel-3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1a065e5d8a5b5bb8e29f955d1de31c74", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31435, "upload_time": "2018-03-28T16:43:34", "url": "https://files.pythonhosted.org/packages/f5/18/d72336baf23b6a212d1331d20bc5b9a0720d15ae60502151aec56717362e/jsonmodel-3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc3e087dfe669caf58794862d4e10b11", "sha256": "6bddda3cbb7dfe845ccbeb606199e2c2d6ae92d667535e049e5af33f545f049f" }, "downloads": -1, "filename": "jsonmodel-3.0.tar.gz", "has_sig": false, "md5_digest": "cc3e087dfe669caf58794862d4e10b11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36307, "upload_time": "2018-03-28T16:43:35", "url": "https://files.pythonhosted.org/packages/e2/59/4d98e55bbc480177647082fe0f88199677cb34a6480da223e698a2bbe67b/jsonmodel-3.0.tar.gz" } ] }