{ "info": { "author": "Sean Harrison", "author_email": "sah@bookgenesis.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "# datamodels\n\nThe datamodels package builds on dataclasses and adds the following functionality:\n\n* `.dict()` instance method \u2013 returns a dict of the data, making it simple to serialize to formats like JSON or YAML.\n* `.from_data()` class method \u2013 create a new instance by passing in an iterable key-value data source (such as a dict). Unlike the regular constructor, this only uses the values in the input data that match fields in the model \u2014 others are ignored. This is useful for pulling model data out of a larger data source.\n* `@validator` decorator to specify data validation methods.\n* `.validate()` class method \u2013 runs the attribute validator methods and returns a `dict` with the fields that have errors as keys and a list of errors as the values.\n\nThe datamodels package is inspired by prior art: Django models and forms, the attrs package by which dataclasses was inspired, and the XML world, where schemas and data validation form a key part of production workflows.\n\nInstallation:\n\n```bash\npip install datamodels\n```\n\n\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/blackearth/datamodels", "keywords": "", "license": "MPL 2.0", "maintainer": "", "maintainer_email": "", "name": "datamodels", "package_url": "https://pypi.org/project/datamodels/", "platform": "", "project_url": "https://pypi.org/project/datamodels/", "project_urls": { "Homepage": "https://github.com/blackearth/datamodels" }, "release_url": "https://pypi.org/project/datamodels/0.8.1/", "requires_dist": [ "twine ; extra == 'dev'" ], "requires_python": "", "summary": "Models for Pythonistas", "version": "0.8.1" }, "last_serial": 5904954, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e073fd755d49f20e899d3dc92c113452", "sha256": "4cdae12ae717826bab020a58a443ca5bea26e3ed27db6f4fd96ef2d5b2fc20ab" }, "downloads": -1, "filename": "datamodels-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e073fd755d49f20e899d3dc92c113452", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7105, "upload_time": "2019-05-17T22:42:32", "url": "https://files.pythonhosted.org/packages/78/42/25ff35e8547e171d7589ba95b0464f97be879281ac2372f72377356f8a44/datamodels-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa03ab827204ed3f9c02cfddc45b3119", "sha256": "2db8c197a21084546ae49ac57459a1e2744350a6a31b402cf4f45a1de116e7c1" }, "downloads": -1, "filename": "datamodels-0.1.0.tar.gz", "has_sig": false, "md5_digest": "fa03ab827204ed3f9c02cfddc45b3119", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1283, "upload_time": "2019-05-17T22:42:35", "url": "https://files.pythonhosted.org/packages/0f/24/b62be4e8375dd2a4be51b77e7472f53d1120fff3a140dd050bf9ce0233d7/datamodels-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c58e275db0aaea63c10de4e2b99aacbd", "sha256": "b0c47f96140afd4e4f5e8cc1ac9ae3d0c4f3871120dccd6c9067c9d7e4ba47a7" }, "downloads": -1, "filename": "datamodels-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c58e275db0aaea63c10de4e2b99aacbd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7565, "upload_time": "2019-05-17T23:07:35", "url": "https://files.pythonhosted.org/packages/55/1e/26750ca52d856df9bf8170a693d86fcfd9a3e09b970d0bbbe356be13da93/datamodels-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e76677f1f2b152939163ba880f67f1d8", "sha256": "168555f6b464e0576684997e88e39d12a6356c766cd1c6d76cc61e6b42f1bff9" }, "downloads": -1, "filename": "datamodels-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e76677f1f2b152939163ba880f67f1d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1790, "upload_time": "2019-05-17T23:07:36", "url": "https://files.pythonhosted.org/packages/23/bf/9b5f5b76b3ebbd04377cc56e4ebf9da795760ad2e22bd7015756a4351362/datamodels-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a84ef8cdd025256e1f1f81a11e38c190", "sha256": "8c8ec0ffd73a80d1a65f68c5d09465d51d59c3be53cdef9acafc4fae145f71af" }, "downloads": -1, "filename": "datamodels-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a84ef8cdd025256e1f1f81a11e38c190", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8839, "upload_time": "2019-05-24T01:15:05", "url": "https://files.pythonhosted.org/packages/64/23/19b5954881ee44e73dcbda50d2dd101ecf5bf3e146642dbf877f89e94b67/datamodels-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6c22c1e88676e280fd3b1202156e48f", "sha256": "e99a97e911133555bf9eb8f4063e992fd1ec6ccf9ded3b79a4c83bfb62bcf6a1" }, "downloads": -1, "filename": "datamodels-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c6c22c1e88676e280fd3b1202156e48f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2629, "upload_time": "2019-05-24T01:15:07", "url": "https://files.pythonhosted.org/packages/7c/2b/800c13a30b460470be79aa33dbd11f8a68f6304389f8259a57bf94fb7817/datamodels-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "7d0c7dfce3108fb434d5ccc899998a13", "sha256": "4b6a4b4facb270efacab297b2e4037f4a736fa26aec9aab68d9b54e17e9ad82b" }, "downloads": -1, "filename": "datamodels-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7d0c7dfce3108fb434d5ccc899998a13", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9469, "upload_time": "2019-05-24T04:07:51", "url": "https://files.pythonhosted.org/packages/19/dc/e8ccff84a560c1216407a0aa70009cd69b721bc77c8cdd717d4b196c877b/datamodels-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec5a7359ad09c0021f256d78961c9e30", "sha256": "af5816b5d892a5fb3342cf34cd0d35d0018d6fffe1c7a194d6513f4d38df3407" }, "downloads": -1, "filename": "datamodels-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ec5a7359ad09c0021f256d78961c9e30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3294, "upload_time": "2019-05-24T04:07:53", "url": "https://files.pythonhosted.org/packages/77/55/9d0f9199834c7362f33e1461c3ba1302053ccea16e9d51c3d0f25e53f7f5/datamodels-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "77a34b23533b35c6ddbadb3f7e1cd4b0", "sha256": "321247a655817436cc527c4298bf96d5a7fcd1f8b9d5824a08b33add285d898d" }, "downloads": -1, "filename": "datamodels-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77a34b23533b35c6ddbadb3f7e1cd4b0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10679, "upload_time": "2019-07-23T04:08:42", "url": "https://files.pythonhosted.org/packages/b2/af/3f9e15fa87fd6beb47863feff98c64f11690ba52618f84266f346d9749c3/datamodels-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db1f56bd7d473e4f91ece7b8177d83c1", "sha256": "0c9ee4a0926a139509af6f7d10ec34ea861d1592b762514f7213ab43772c755b" }, "downloads": -1, "filename": "datamodels-0.4.0.tar.gz", "has_sig": false, "md5_digest": "db1f56bd7d473e4f91ece7b8177d83c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4340, "upload_time": "2019-07-23T04:08:43", "url": "https://files.pythonhosted.org/packages/d3/5e/3e03f7f0b5ab5e256d7d24273d3d1b1d6d593dc4660076406e51cbe6ff22/datamodels-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "51b7a28000c63d0f6867da6cb25c3696", "sha256": "c78effc3fca6dbb01f5d358f96d18dd8e7afbf741ba93fd8d09ef1bc633fdacf" }, "downloads": -1, "filename": "datamodels-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51b7a28000c63d0f6867da6cb25c3696", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10848, "upload_time": "2019-07-23T18:57:44", "url": "https://files.pythonhosted.org/packages/dc/53/960eb409f8378947935c3e62d1d7e209cbbeee275b13f110d4da51c43183/datamodels-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39bd676870c85e0c57670dbb21c13e40", "sha256": "79fdc095890ac1c89ab9de172a9fe1bbac8c33793c37be67563a1a69cecb2ec3" }, "downloads": -1, "filename": "datamodels-0.5.0.tar.gz", "has_sig": false, "md5_digest": "39bd676870c85e0c57670dbb21c13e40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4505, "upload_time": "2019-07-23T18:57:45", "url": "https://files.pythonhosted.org/packages/8a/ff/02fef621bdc7e2cf18be7cad68244fe8cc52172b4915ca2551104e384944/datamodels-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "6e222d3b0380307835ae9619d9d0e046", "sha256": "f7c40c9b2b46b0efd5bff1d76091abcdfa0bc82632ac14c91687fa2d2e375077" }, "downloads": -1, "filename": "datamodels-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e222d3b0380307835ae9619d9d0e046", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10867, "upload_time": "2019-07-23T22:02:21", "url": "https://files.pythonhosted.org/packages/40/91/66a6ee26e88eedcf9fc178ac106192f24502c0395a07696f12b48693423e/datamodels-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "004d261cadfa447d8d40ec501a600ff4", "sha256": "14331ed69e9dd6b441472a789727bca3903185fe39cb70e44760c5b9e3c551fe" }, "downloads": -1, "filename": "datamodels-0.5.1.tar.gz", "has_sig": false, "md5_digest": "004d261cadfa447d8d40ec501a600ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4528, "upload_time": "2019-07-23T22:02:23", "url": "https://files.pythonhosted.org/packages/e4/2c/5726abad21b54059885fa51db1dbdc3ed718628a4e69f33525da14cd0983/datamodels-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "d4ed224162c2b6c4d470e283f98d640e", "sha256": "9b13dc773683e5a37f4ecc7a2d14bad0acc8aa0ed0eb1ec8cf7112b0a558dbec" }, "downloads": -1, "filename": "datamodels-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d4ed224162c2b6c4d470e283f98d640e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11507, "upload_time": "2019-08-06T22:05:50", "url": "https://files.pythonhosted.org/packages/20/dc/6332a2b3dc1c08df97c3fec2193cbab80d96f77b897cf2030a7df600c025/datamodels-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c49d99ae70213b2a26672db4f7a5f23d", "sha256": "1341b9d1865caa6c3ec7b5c06c469e77bc26dc5474bf47d8135f7b7084833695" }, "downloads": -1, "filename": "datamodels-0.6.0.tar.gz", "has_sig": false, "md5_digest": "c49d99ae70213b2a26672db4f7a5f23d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4993, "upload_time": "2019-08-06T22:05:51", "url": "https://files.pythonhosted.org/packages/76/39/086c77bf362a5cd189c81ee55c870f3c1c9fea39b09dea9d2ceb8e0973d3/datamodels-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "5b9f35fe9981cadeb8e7a9aecf964d83", "sha256": "c46a8d9f5d976082de7df37dbbfb7711bc10d9339f3d642904c25241502a896d" }, "downloads": -1, "filename": "datamodels-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b9f35fe9981cadeb8e7a9aecf964d83", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12792, "upload_time": "2019-09-27T03:54:47", "url": "https://files.pythonhosted.org/packages/a4/9b/fd0f75cb22071df103f96ef94676a36db4b223a0248ad52714de7be8eb3c/datamodels-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a57093a343ad90239646f8eafdc18f1", "sha256": "2355b05b8d5ea05dd131bf89bb7001c7ed545889475f76aa070625202f4c4680" }, "downloads": -1, "filename": "datamodels-0.7.0.tar.gz", "has_sig": false, "md5_digest": "4a57093a343ad90239646f8eafdc18f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5802, "upload_time": "2019-09-27T03:54:48", "url": "https://files.pythonhosted.org/packages/9a/61/e64434e1d112b1509317e97239341e4db52af7db378a24bef4b39c7d1e91/datamodels-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "c86b9ae2dcc115a9014f339382016629", "sha256": "a5cc4b2a734d17f33008f70058abaf55b53ca06104a7e04da45dc62288c3d863" }, "downloads": -1, "filename": "datamodels-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c86b9ae2dcc115a9014f339382016629", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12378, "upload_time": "2019-09-27T03:59:12", "url": "https://files.pythonhosted.org/packages/f6/72/f50d63badffb6f7affdf2686badff2d31f2981d4717991ac905039d7a567/datamodels-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6af09b3a91b763f704a3b2caf8323c8a", "sha256": "3f1f0eed9a2f642cf445ef51d9040cf1956982f315ca83a0963f803cc7de97fd" }, "downloads": -1, "filename": "datamodels-0.8.0.tar.gz", "has_sig": false, "md5_digest": "6af09b3a91b763f704a3b2caf8323c8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5637, "upload_time": "2019-09-27T03:59:14", "url": "https://files.pythonhosted.org/packages/66/28/655e889adc451a8f3d87ae6ae0585bc25c4b9aa0ca7f8955f757e0976ec8/datamodels-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "f319e2ed2969a4bc1edbd4daeab53191", "sha256": "40c4b4d85e125cbfde1be0b2efc4bcc4581cdabefe6e988d433b219de54e3994" }, "downloads": -1, "filename": "datamodels-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f319e2ed2969a4bc1edbd4daeab53191", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12420, "upload_time": "2019-09-30T05:57:54", "url": "https://files.pythonhosted.org/packages/06/f3/e41a9648ecf9929e34a96f8dc38a8d5ae089c550b155af2c81a701979f12/datamodels-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b81a1cc9c5eb34f7c45ae971cd815b6d", "sha256": "74f7ef56eb5c3d6b2cbcadb464f00190ad10b1ae99f8b6c8b289bee193305316" }, "downloads": -1, "filename": "datamodels-0.8.1.tar.gz", "has_sig": false, "md5_digest": "b81a1cc9c5eb34f7c45ae971cd815b6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5682, "upload_time": "2019-09-30T05:58:00", "url": "https://files.pythonhosted.org/packages/42/af/7d65bc6513c3dc223f7c938b49f308d4aec93925787a2117caf359c92038/datamodels-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f319e2ed2969a4bc1edbd4daeab53191", "sha256": "40c4b4d85e125cbfde1be0b2efc4bcc4581cdabefe6e988d433b219de54e3994" }, "downloads": -1, "filename": "datamodels-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f319e2ed2969a4bc1edbd4daeab53191", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12420, "upload_time": "2019-09-30T05:57:54", "url": "https://files.pythonhosted.org/packages/06/f3/e41a9648ecf9929e34a96f8dc38a8d5ae089c550b155af2c81a701979f12/datamodels-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b81a1cc9c5eb34f7c45ae971cd815b6d", "sha256": "74f7ef56eb5c3d6b2cbcadb464f00190ad10b1ae99f8b6c8b289bee193305316" }, "downloads": -1, "filename": "datamodels-0.8.1.tar.gz", "has_sig": false, "md5_digest": "b81a1cc9c5eb34f7c45ae971cd815b6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5682, "upload_time": "2019-09-30T05:58:00", "url": "https://files.pythonhosted.org/packages/42/af/7d65bc6513c3dc223f7c938b49f308d4aec93925787a2117caf359c92038/datamodels-0.8.1.tar.gz" } ] }