{ "info": { "author": "Szczepan Cie\u015blik", "author_email": "szczepan.cieslik@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "===========\nJSON models\n===========\n\n.. image:: https://badge.fury.io/py/jsonmodels.png\n :target: http://badge.fury.io/py/jsonmodels\n\n.. image:: https://travis-ci.org/beregond/jsonmodels.png?branch=master\n :target: https://travis-ci.org/beregond/jsonmodels\n\n.. image:: https://img.shields.io/pypi/dm/jsonmodels.svg\n :target: https://pypi.python.org/pypi/jsonmodels\n\n.. image:: https://coveralls.io/repos/beregond/jsonmodels/badge.png\n :target: https://coveralls.io/r/beregond/jsonmodels\n\n\n`jsonmodels` is library to make it easier for you to deal with structures that\nare converted to, or read from JSON.\n\n* Free software: BSD license\n* Documentation: http://jsonmodels.rtfd.org\n* Source: https://github.com/beregond/jsonmodels\n\nFeatures\n--------\n\n* Fully tested with Python 2.7, 3.3, 3.4, 3.5, 3.6.\n\n* Support for PyPy (see implementation notes in docs for more details).\n\n* Create Django-like models:\n\n .. code-block:: python\n\n from jsonmodels import models, fields, errors, validators\n\n\n class Cat(models.Base):\n\n name = fields.StringField(required=True)\n breed = fields.StringField()\n love_humans = fields.IntField(nullable=True)\n\n\n class Dog(models.Base):\n\n name = fields.StringField(required=True)\n age = fields.IntField()\n\n\n class Car(models.Base):\n\n registration_number = fields.StringField(required=True)\n engine_capacity = fields.FloatField()\n color = fields.StringField()\n\n\n class Person(models.Base):\n\n name = fields.StringField(required=True)\n surname = fields.StringField(required=True)\n nickname = fields.StringField(nullable=True)\n car = fields.EmbeddedField(Car)\n pets = fields.ListField([Cat, Dog], nullable=True)\n\n* Access to values through attributes:\n\n .. code-block:: python\n\n >>> cat = Cat()\n >>> cat.populate(name='Garfield')\n >>> cat.name\n 'Garfield'\n >>> cat.breed = 'mongrel'\n >>> cat.breed\n 'mongrel'\n\n* Validate models:\n\n .. code-block:: python\n\n >>> person = Person(name='Chuck', surname='Norris')\n >>> person.validate()\n None\n\n >>> dog = Dog()\n >>> dog.validate()\n *** ValidationError: Field \"name\" is required!\n\n* Cast models to python struct and JSON:\n\n .. code-block:: python\n\n >>> cat = Cat(name='Garfield')\n >>> dog = Dog(name='Dogmeat', age=9)\n >>> car = Car(registration_number='ASDF 777', color='red')\n >>> person = Person(name='Johny', surname='Bravo', pets=[cat, dog])\n >>> person.car = car\n >>> person.to_struct()\n {\n 'car': {\n 'color': 'red',\n 'registration_number': 'ASDF 777'\n },\n 'surname': 'Bravo',\n 'name': 'Johny',\n 'nickname': None,\n 'pets': [\n {'name': 'Garfield'},\n {'age': 9, 'name': 'Dogmeat'}\n ]\n }\n\n >>> import json\n >>> person_json = json.dumps(person.to_struct())\n\n* You don't like to write JSON Schema? Let `jsonmodels` do it for you:\n\n .. code-block:: python\n\n >>> person = Person()\n >>> person.to_json_schema()\n {\n 'additionalProperties': False,\n 'required': ['surname', 'name'],\n 'type': 'object',\n 'properties': {\n 'car': {\n 'additionalProperties': False,\n 'required': ['registration_number'],\n 'type': 'object',\n 'properties': {\n 'color': {'type': 'string'},\n 'engine_capacity': {'type': ''},\n 'registration_number': {'type': 'string'}\n }\n },\n 'surname': {'type': 'string'},\n 'name': {'type': 'string'},\n 'nickname': {'type': ['string', 'null']}\n 'pets': {\n 'items': {\n 'oneOf': [\n {\n 'additionalProperties': False,\n 'required': ['name'],\n 'type': 'object',\n 'properties': {\n 'breed': {'type': 'string'},\n 'name': {'type': 'string'}\n }\n },\n {\n 'additionalProperties': False,\n 'required': ['name'],\n 'type': 'object',\n 'properties': {\n 'age': {'type': 'number'},\n 'name': {'type': 'string'}\n }\n },\n {\n 'type': 'null'\n }\n ]\n },\n 'type': 'array'\n }\n }\n }\n\n* Validate models and use validators, that affect generated schema:\n\n .. code-block:: python\n\n >>> class Person(models.Base):\n ...\n ... name = fields.StringField(\n ... required=True,\n ... validators=[\n ... validators.Regex('^[A-Za-z]+$'),\n ... validators.Length(3, 25),\n ... ],\n ... )\n ... age = fields.IntField(\n ... nullable=True,\n ... validators=[\n ... validators.Min(18),\n ... validators.Max(101),\n ... ]\n ... )\n ... nickname = fields.StringField(\n ... required=True,\n ... nullable=True\n ... )\n ...\n\n >>> person = Person()\n >>> person.age = 11\n >>> person.validate()\n *** ValidationError: '11' is lower than minimum ('18').\n >>> person.age = None\n >>> person.validate()\n None\n\n >>> person.age = 19\n >>> person.name = 'Scott_'\n >>> person.validate()\n *** ValidationError: Value \"Scott_\" did not match pattern \"^[A-Za-z]+$\".\n\n >>> person.name = 'Scott'\n >>> person.validate()\n None\n\n >>> person.nickname = None\n >>> person.validate()\n *** ValidationError: Field is required!\n\n >>> person.to_json_schema()\n {\n \"additionalProperties\": false,\n \"properties\": {\n \"age\": {\n \"maximum\": 101,\n \"minimum\": 18,\n \"type\": [\"number\", \"null\"]\n },\n \"name\": {\n \"maxLength\": 25,\n \"minLength\": 3,\n \"pattern\": \"/^[A-Za-z]+$/\",\n \"type\": \"string\"\n },\n \"nickname\": {,\n \"type\": [\"string\", \"null\"]\n }\n },\n \"required\": [\n \"nickname\",\n \"name\"\n ],\n \"type\": \"object\"\n }\n\n For more information, please see topic about validation in documentation.\n\n* Lazy loading, best for circular references:\n\n .. code-block:: python\n\n >>> class Primary(models.Base):\n ...\n ... name = fields.StringField()\n ... secondary = fields.EmbeddedField('Secondary')\n\n >>> class Secondary(models.Base):\n ...\n ... data = fields.IntField()\n ... first = fields.EmbeddedField('Primary')\n\n You can use either `Model`, full path `path.to.Model` or relative imports\n `.Model` or `...Model`.\n\n* Using definitions to generate schema for circular references:\n\n .. code-block:: python\n\n >>> class File(models.Base):\n ...\n ... name = fields.StringField()\n ... size = fields.FloatField()\n\n >>> class Directory(models.Base):\n ...\n ... name = fields.StringField()\n ... children = fields.ListField(['Directory', File])\n\n >>> class Filesystem(models.Base):\n ...\n ... name = fields.StringField()\n ... children = fields.ListField([Directory, File])\n\n >>> Filesystem.to_json_schema()\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\"type\": \"string\"}\n \"children\": {\n \"items\": {\n \"oneOf\": [\n \"#/definitions/directory\",\n \"#/definitions/file\"\n ]\n },\n \"type\": \"array\"\n }\n },\n \"additionalProperties\": false,\n \"definitions\": {\n \"directory\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"children\": {\n \"items\": {\n \"oneOf\": [\n \"#/definitions/directory\",\n \"#/definitions/file\"\n ]\n },\n \"type\": \"array\"\n },\n \"name\": {\"type\": \"string\"}\n },\n \"type\": \"object\"\n },\n \"file\": {\n \"additionalProperties\": false,\n \"properties\": {\n \"name\": {\"type\": \"string\"},\n \"size\": {\"type\": \"number\"}\n },\n \"type\": \"object\"\n }\n }\n }\n\n* Compare JSON schemas:\n\n .. code-block:: python\n\n >>> from jsonmodels.utils import compare_schemas\n >>> schema1 = {'type': 'object'}\n >>> schema2 = {'type': 'array'}\n >>> compare_schemas(schema1, schema1)\n True\n >>> compare_schemas(schema1, schema2)\n False\n\nMore\n----\n\nFor more examples and better description see full documentation:\nhttp://jsonmodels.rtfd.org.\n\n\n\n\nHistory\n-------\n\n2.4 (2018-12-01)\n++++++++++++++++\n\n* Fixed length validator.\n* Added Python 3.7 support.\n\n2.3 (2018-02-04)\n++++++++++++++++\n\n* Added name mapping for fields.\n* Added value parsing to IntField.\n* Fixed bug with ECMA regex flags recognition.\n\n2.2 (2017-08-21)\n++++++++++++++++\n\n* Fixed time fields, when value is not required.\n* Dropped support for python 2.6\n* Added support for python 3.6\n* Added nullable param for fields.\n* Improved model representation.\n\n2.1.5 (2017-02-01)\n++++++++++++++++++\n\n* Fixed DateTimefield error when value is None.\n* Fixed comparing models without required values.\n\n2.1.4 (2017-01-24)\n++++++++++++++++++\n\n* Allow to compare models based on their type and fields (rather than their\n reference).\n\n2.1.3 (2017-01-16)\n++++++++++++++++++\n\n* Fixed generated schema.\n* Improved JSON serialization.\n\n2.1.2 (2016-01-06)\n++++++++++++++++++\n\n* Fixed memory leak.\n\n2.1.1 (2015-11-15)\n++++++++++++++++++\n\n* Added support for Python 2.6, 3.2 and 3.5.\n\n2.1 (2015-11-02)\n++++++++++++++++\n\n* Added lazy loading of types.\n* Added schema generation for circular models.\n* Improved readability of validation error.\n* Fixed structure generation for list field.\n\n2.0.1 (2014-11-15)\n++++++++++++++++++\n\n* Fixed schema generation for primitives.\n\n2.0 (2014-11-14)\n++++++++++++++++\n\n* Fields now are descriptors.\n* Empty required fields are still validated only during explicite validations.\n\nBackward compatibility breaks\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Renamed _types to types in fields.\n* Renamed _items_types to items_types in ListField.\n* Removed data transformers.\n* Renamed module `error` to `errors`.\n* Removed explicit validation - validation occurs at assign time.\n* Renamed `get_value_replacement` to `get_default_value`.\n* Renamed modules `utils` to `utilities`.\n\n1.4 (2014-07-22)\n++++++++++++++++\n\n* Allowed validators to modify generated schema.\n* Added validator for maximum value.\n* Added utilities to convert regular expressions between Python and ECMA\n formats.\n* Added validator for regex.\n* Added validator for minimum value.\n* By default \"validators\" property of field is an empty list.\n\n1.3.1 (2014-07-13)\n++++++++++++++++++\n\n* Fixed generation of schema for BoolField.\n\n1.3 (2014-07-13)\n++++++++++++++++\n\n* Added new fields (BoolField, TimeField, DateField and DateTimeField).\n* ListField is always not required.\n* Schema can be now generated from class itself (not from an instance).\n\n1.2 (2014-06-18)\n++++++++++++++++\n\n* Fixed values population, when value is not dictionary.\n* Added custom validators.\n* Added tool for schema comparison.\n\n1.1.1 (2014-06-07)\n++++++++++++++++++\n\n* Added possibility to populate already initialized data to EmbeddedField.\n* Added `compare_schemas` utility.\n\n1.1 (2014-05-19)\n++++++++++++++++\n\n* Added docs.\n* Added json schema generation.\n* Added tests for PEP8 and complexity.\n* Moved to Python 3.4.\n* Added PEP257 compatibility.\n* Added help text to fields.\n\n1.0.5 (2014-04-14)\n++++++++++++++++++\n\n* Added data transformers.\n\n1.0.4 (2014-04-13)\n++++++++++++++++++\n\n* List field now supports simple types.\n\n1.0.3 (2014-04-10)\n++++++++++++++++++\n\n* Fixed compatibility with Python 3.\n* Fixed `str` and `repr` methods.\n\n1.0.2 (2014-04-03)\n++++++++++++++++++\n\n* Added deep data initialization.\n\n1.0.1 (2014-04-03)\n++++++++++++++++++\n\n* Added `populate` method.\n\n1.0 (2014-04-02)\n++++++++++++++++\n\n* First stable release on PyPI.\n\n0.1.0 (2014-03-17)\n++++++++++++++++++\n\n* First release on PyPI.\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/beregond/jsonmodels", "keywords": "jsonmodels", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "jsonmodels", "package_url": "https://pypi.org/project/jsonmodels/", "platform": "", "project_url": "https://pypi.org/project/jsonmodels/", "project_urls": { "Homepage": "https://github.com/beregond/jsonmodels" }, "release_url": "https://pypi.org/project/jsonmodels/2.4/", "requires_dist": [ "python-dateutil", "six" ], "requires_python": "", "summary": "Models to make easier to deal with structures that are converted to, or read from JSON.", "version": "2.4" }, "last_serial": 5729100, "releases": { "0.1.0": [], "1.0": [ { "comment_text": "", "digests": { "md5": "0d098cf67b93e47d41b1e471e29d28c0", "sha256": "7830ba84aa8c467e6a643f98e5fc11258b2d8011c56a9512224510d247721c37" }, "downloads": -1, "filename": "jsonmodels-1.0.tar.gz", "has_sig": false, "md5_digest": "0d098cf67b93e47d41b1e471e29d28c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5639, "upload_time": "2014-04-02T13:26:51", "url": "https://files.pythonhosted.org/packages/28/82/db40399b5e586889e687c7a94f973d2b9e924bb52e3a7c27ef5c7e005b68/jsonmodels-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "2fdfa8bed649293d7789470636a0a138", "sha256": "2ce011a1a91e02e92ec3e08533daedc91a1108e1c86faaf40e31e7673cf070e7" }, "downloads": -1, "filename": "jsonmodels-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2fdfa8bed649293d7789470636a0a138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5651, "upload_time": "2014-04-03T11:39:15", "url": "https://files.pythonhosted.org/packages/fa/ee/9aefb6dfd705307069922272fa3a1f86afd7ce55bdfb10d2f1b682e0923c/jsonmodels-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9b74162791c44d463134c62b3694bdb6", "sha256": "48e0f8067bdcb3b1778d9eb13bea8e01132fdda695e04ba449fca75f4053682a" }, "downloads": -1, "filename": "jsonmodels-1.0.2.tar.gz", "has_sig": false, "md5_digest": "9b74162791c44d463134c62b3694bdb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6034, "upload_time": "2014-04-03T18:40:27", "url": "https://files.pythonhosted.org/packages/01/a4/822d384c811778a0d76f707434ae4cfe6644fdc2d103985a70fc3b9487b7/jsonmodels-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "d64875169406578ed5974002d330e5b6", "sha256": "6318377f5ce965ef97ffcf01598336632ee2bcdb73d975c727f016e9f5dcc5b8" }, "downloads": -1, "filename": "jsonmodels-1.0.3.tar.gz", "has_sig": false, "md5_digest": "d64875169406578ed5974002d330e5b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6231, "upload_time": "2014-04-10T12:38:44", "url": "https://files.pythonhosted.org/packages/0f/7c/243d6db5132b776077d0dd17e3be6167d81d6c1fdaf0e5509f0017fa598d/jsonmodels-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "53b907014cf59b34b0db23bce5bb56b2", "sha256": "1d13742c59f7b62f84f377829890475f012415fb504917302e5bf9bd5102ded0" }, "downloads": -1, "filename": "jsonmodels-1.0.4.tar.gz", "has_sig": false, "md5_digest": "53b907014cf59b34b0db23bce5bb56b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6326, "upload_time": "2014-04-13T20:45:07", "url": "https://files.pythonhosted.org/packages/38/d7/020d921592f09fb8ef76adf5242250551d40b21812668d0154cc0b4f1b54/jsonmodels-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "f7cd54422c284f8c542da0706c0fc3da", "sha256": "9943529e21cb4c8d479f1d62fc1ef84d3a4ac37a7882549ea417e3cf57111357" }, "downloads": -1, "filename": "jsonmodels-1.0.5.tar.gz", "has_sig": false, "md5_digest": "f7cd54422c284f8c542da0706c0fc3da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6514, "upload_time": "2014-04-14T11:40:21", "url": "https://files.pythonhosted.org/packages/fc/bf/74c3acade81c1db8514400e6127133c997e1921df057bacdeeb7566edeaa/jsonmodels-1.0.5.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "1b7c9a61530dd4648a5c0d133f083d61", "sha256": "ba3e52778d95afba220ceb7a969475893264517230b48dcc581af4c2d4b1be84" }, "downloads": -1, "filename": "jsonmodels-1.1.tar.gz", "has_sig": false, "md5_digest": "1b7c9a61530dd4648a5c0d133f083d61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8279, "upload_time": "2014-05-19T21:10:30", "url": "https://files.pythonhosted.org/packages/10/e9/256ef40d49f01e276321147583db1dfffcf56bb1d75a6fe2de2143b7d902/jsonmodels-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "f6204c4ced35bd84e2a40f4514369704", "sha256": "cc85c32c93287ec81c13cd831b7d5de66e64d6bf5c3b2fb29e70660c62a2c4a8" }, "downloads": -1, "filename": "jsonmodels-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f6204c4ced35bd84e2a40f4514369704", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10282, "upload_time": "2014-06-07T10:28:13", "url": "https://files.pythonhosted.org/packages/ac/b1/5b8f9612e1740bd7f7a8f9179d620d5a3c8b8f3637f247c70ca85029b955/jsonmodels-1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "dee9f9bf3eb46b3e634f9cc59ae7243f", "sha256": "99714c3380816050dd3d0c13fc4527041ff237dd6492bb41a6cca14bb91b00b6" }, "downloads": -1, "filename": "jsonmodels-1.2.tar.gz", "has_sig": false, "md5_digest": "dee9f9bf3eb46b3e634f9cc59ae7243f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10437, "upload_time": "2014-06-18T20:34:34", "url": "https://files.pythonhosted.org/packages/99/4e/49699d266a47678284cc570d7b962ad0c37e405236425169c001de0cb71a/jsonmodels-1.2.tar.gz" } ], "1.2.0.1": [ { "comment_text": "", "digests": { "md5": "3fe3558f3f821ae83b86c43923802f16", "sha256": "5a8adc320949163722e8961ed12a844bcd7545c0a386c0aa0046030f6856606a" }, "downloads": -1, "filename": "jsonmodels-1.2.0.1.tar.gz", "has_sig": false, "md5_digest": "3fe3558f3f821ae83b86c43923802f16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10491, "upload_time": "2014-06-19T08:24:50", "url": "https://files.pythonhosted.org/packages/86/33/e2645b6d097f6db5d3b718a272c64b71dbc28b2895baf87cfae4c7b66750/jsonmodels-1.2.0.1.tar.gz" } ], "1.2.0.2": [ { "comment_text": "", "digests": { "md5": "afa9a7de3755c25d5bce471b24f3e8cb", "sha256": "48dad46b6763cb23f24f4ee355f7e1c65740be532a1d45b5213834de9a6c510a" }, "downloads": -1, "filename": "jsonmodels-1.2.0.2.tar.gz", "has_sig": false, "md5_digest": "afa9a7de3755c25d5bce471b24f3e8cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10632, "upload_time": "2014-06-19T10:11:09", "url": "https://files.pythonhosted.org/packages/6e/0e/c938b190df9e5483466b107cf14e5aa1162428622ac301ecf11efa62f391/jsonmodels-1.2.0.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "5fc60d2032dc80cab62788cbcdba02f0", "sha256": "7d8195888e15f4a46fcbe957003d996a8dacfd262ce76cd256769c206d7c27a6" }, "downloads": -1, "filename": "jsonmodels-1.3.tar.gz", "has_sig": false, "md5_digest": "5fc60d2032dc80cab62788cbcdba02f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11445, "upload_time": "2014-07-13T10:29:53", "url": "https://files.pythonhosted.org/packages/87/48/cad7fad4fa715058b2aff1b96691f50cf7d9572aa028769cda74aa2e78b8/jsonmodels-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "e3230f2a42feef733ed3b88928bd8c3e", "sha256": "e6f9eefb4a753654439f76890af9efee211b9506bc151b47e6b7809359aa5d02" }, "downloads": -1, "filename": "jsonmodels-1.3.1.tar.gz", "has_sig": false, "md5_digest": "e3230f2a42feef733ed3b88928bd8c3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11568, "upload_time": "2014-07-13T13:59:42", "url": "https://files.pythonhosted.org/packages/d4/33/c3eae1ff5ba1c4d689b1f399d3ce75fb897b0691547487006eecfaa224f5/jsonmodels-1.3.1.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "740a3834a296d550c8c02e927106ac39", "sha256": "121a66e136c56fdd477df01b7cc25e2848db82b5634ccd7b63f0fc50b956e80c" }, "downloads": -1, "filename": "jsonmodels-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "740a3834a296d550c8c02e927106ac39", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13977, "upload_time": "2014-07-22T20:44:13", "url": "https://files.pythonhosted.org/packages/e3/d4/e4d6b965d610e47838b9276f4ac4701a879c0d7157d8d9ad5a253f6b7657/jsonmodels-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11a942c90117f3aca2c841d619646fb3", "sha256": "292f9e616480e03cd23383838b1f6c1ba27cda240c3565a2d885829a2d187a0e" }, "downloads": -1, "filename": "jsonmodels-1.4.tar.gz", "has_sig": false, "md5_digest": "11a942c90117f3aca2c841d619646fb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14417, "upload_time": "2014-07-22T20:44:10", "url": "https://files.pythonhosted.org/packages/0b/08/395313947801830ec4fcad5ec05ba01ec306dd2980f9d152d60992bb5df5/jsonmodels-1.4.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "16aba322d6d78aa65640d1a76adea532", "sha256": "044772a71fbe2b1a341fbdea8dd81c4f251e2e3f5242a518e7881c94ed9881bf" }, "downloads": -1, "filename": "jsonmodels-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16aba322d6d78aa65640d1a76adea532", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14161, "upload_time": "2014-11-15T14:24:54", "url": "https://files.pythonhosted.org/packages/9e/3a/38de1267ad031fbdeb806973686903e9e414c048836bf7229236b510fd47/jsonmodels-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab03441ce1c4fb1502b5c798bd539d36", "sha256": "a8d9e29fa363e86ebfdb99d99817cf58f8aa3b19f2ec1709144ea7b6c9dd9766" }, "downloads": -1, "filename": "jsonmodels-1.4.1.tar.gz", "has_sig": false, "md5_digest": "ab03441ce1c4fb1502b5c798bd539d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14679, "upload_time": "2014-11-15T14:24:51", "url": "https://files.pythonhosted.org/packages/c2/ec/784ad8f19ecf185879ee250e2f5be7aa0da78ff26760d06d22cfd9c83d9a/jsonmodels-1.4.1.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "cccc01d5b0a20f299cfd7d55b960c4f6", "sha256": "a150cc96db0dc149a17e813c268d476d08853a90cf9d55f2a097055f6159c750" }, "downloads": -1, "filename": "jsonmodels-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cccc01d5b0a20f299cfd7d55b960c4f6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16569, "upload_time": "2014-11-14T22:01:35", "url": "https://files.pythonhosted.org/packages/d4/9f/bca0903bc3d6cacd0ce3f53c10e2c21a5057603c97b521b0bcd7fe4d00d4/jsonmodels-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "31faf2701311850c44a494203b11d7e8", "sha256": "0df71eade9346bbddd533c75d2437380204cf2744f53cd3a067e206aca9dfe57" }, "downloads": -1, "filename": "jsonmodels-2.0.tar.gz", "has_sig": false, "md5_digest": "31faf2701311850c44a494203b11d7e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15579, "upload_time": "2014-11-14T22:01:31", "url": "https://files.pythonhosted.org/packages/78/99/45d9553fa57130c6ea45accf31f5e696900aefd07bdbcd10de51eb338a34/jsonmodels-2.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "599e724b701de3ee9bd4f620530891b4", "sha256": "23b6f4201d82bf1c1b52a4c1254ff8dedd5afdca1e8eba33b44a1cf8188d5acc" }, "downloads": -1, "filename": "jsonmodels-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "599e724b701de3ee9bd4f620530891b4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16740, "upload_time": "2014-11-15T14:25:24", "url": "https://files.pythonhosted.org/packages/3a/d5/8b338d22e3dee50c35eac4fe4109d03746fd0a6d3415fd422db2520a6c2e/jsonmodels-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "764eb84b5d22e4bf3660fa7fb686fa29", "sha256": "6b6f80d58b5692a40e10888002e068ffb941af3109f106d5616531d377514cc6" }, "downloads": -1, "filename": "jsonmodels-2.0.1.tar.gz", "has_sig": false, "md5_digest": "764eb84b5d22e4bf3660fa7fb686fa29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15668, "upload_time": "2014-11-15T14:25:21", "url": "https://files.pythonhosted.org/packages/f0/54/965bb3b50978c2a1c5ea376a452f3f523dab2fdc029ca254503bcc457df7/jsonmodels-2.0.1.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "774250c3b0d5ae032e29fb494f258288", "sha256": "1cd17dadc1a23665bbe6a95fec2d28ab07926c6069bddf8c0d84a1e98da09c4e" }, "downloads": -1, "filename": "jsonmodels-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "774250c3b0d5ae032e29fb494f258288", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17494, "upload_time": "2015-11-02T22:25:35", "url": "https://files.pythonhosted.org/packages/3a/0f/efe009a1b6f6a3768dc5b6c87a5411d855cea7f7425b2269c4d4fcb4ce73/jsonmodels-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae81112d0463a21532a774c36f483b50", "sha256": "e16a03c064afdd5537a04b631854b3e8727104e933bb6f03cea8abd4c6c78dac" }, "downloads": -1, "filename": "jsonmodels-2.1.tar.gz", "has_sig": false, "md5_digest": "ae81112d0463a21532a774c36f483b50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17002, "upload_time": "2015-11-02T22:25:22", "url": "https://files.pythonhosted.org/packages/70/85/15fd9ab652d9216dcf4ae9b4297130f73600646555ca72f3dd90392bde0a/jsonmodels-2.1.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "6fa3d11dd31ab6d066def5cda61de9d2", "sha256": "417caadf32954aa95194c675dd6253586d07f1900e3868f542c2d2f4d6a099fa" }, "downloads": -1, "filename": "jsonmodels-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fa3d11dd31ab6d066def5cda61de9d2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 18205, "upload_time": "2015-11-15T00:45:01", "url": "https://files.pythonhosted.org/packages/8a/06/b162ad57b3793dcb2272ad3cb4fb98129f61a30bd19b80ab987464835044/jsonmodels-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82737fb0bf488938c0fc1576ba676ebc", "sha256": "f02efc16eaeb6745c44ca578206092f4b174570a958f02a3aadc8d9e79530013" }, "downloads": -1, "filename": "jsonmodels-2.1.1.tar.gz", "has_sig": false, "md5_digest": "82737fb0bf488938c0fc1576ba676ebc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17327, "upload_time": "2015-11-15T00:44:55", "url": "https://files.pythonhosted.org/packages/41/81/b254b837b9c17db3f974f1f80f83e46e7238637ed2989c17f3b939d932a6/jsonmodels-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "99eb0acd9fc42f84deff1afbbe3e7e01", "sha256": "7683ed1996be7aa06d61c84700022f07ccf5590428474238cdf1a0893d9f219c" }, "downloads": -1, "filename": "jsonmodels-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99eb0acd9fc42f84deff1afbbe3e7e01", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 18336, "upload_time": "2016-01-06T22:54:21", "url": "https://files.pythonhosted.org/packages/72/57/4b0af2f7d5381f0a435b362c2de8702c55adf518f75f20b5b2afc3841a21/jsonmodels-2.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d5db82e30a9f8ccb7aee30e24e617da", "sha256": "91c1823a1a4aa5a0ca6c77048aa66f9524accaaf654d9ea17b875d806b59b895" }, "downloads": -1, "filename": "jsonmodels-2.1.2.tar.gz", "has_sig": false, "md5_digest": "5d5db82e30a9f8ccb7aee30e24e617da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17472, "upload_time": "2016-01-06T22:53:51", "url": "https://files.pythonhosted.org/packages/24/9f/e98201eb51a973743523bedeec8a364bc25b43b406a988f18cf7f2762b73/jsonmodels-2.1.2.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "26f780a69387b717920f4916cff43f08", "sha256": "1ee8178da4b6a7f3a63379f06f45e2b8536d433dc4ed7eb62c421f77cca6355e" }, "downloads": -1, "filename": "jsonmodels-2.1.3.tar.gz", "has_sig": false, "md5_digest": "26f780a69387b717920f4916cff43f08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18609, "upload_time": "2017-01-16T08:54:34", "url": "https://files.pythonhosted.org/packages/db/fd/42415aea2fbc9d05aa7fa2256d6dcd00c82e3a24caee230361122ce67f6a/jsonmodels-2.1.3.tar.gz" } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "bf427eb08dc90e2ac9119a4e27d81d5d", "sha256": "e963f92d81779e4a04138904da5af76256a53afafbb4d52aa8b8c77bb4c8f319" }, "downloads": -1, "filename": "jsonmodels-2.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf427eb08dc90e2ac9119a4e27d81d5d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18262, "upload_time": "2017-01-24T20:34:10", "url": "https://files.pythonhosted.org/packages/54/32/1f81d969b02770d6cc1bf716f186beade73747a83216067af42afc4370be/jsonmodels-2.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1d7315d787da900ee29f538216c24bc0", "sha256": "d66dc93b927ad290f546bd2e71b4b638ea29f8f3ee7edd30faa6298464f88a9c" }, "downloads": -1, "filename": "jsonmodels-2.1.4.tar.gz", "has_sig": false, "md5_digest": "1d7315d787da900ee29f538216c24bc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16866, "upload_time": "2017-01-24T20:37:07", "url": "https://files.pythonhosted.org/packages/08/be/916d77921c7e25ce625924c35667af46dd6c5a6259b079079e5ab2effbe5/jsonmodels-2.1.4.tar.gz" } ], "2.1.5": [ { "comment_text": "", "digests": { "md5": "94b40b4254997e0cbaab3686d701cca5", "sha256": "8e4a887bac8a5c549ba6d39b65e2920cd96f88f646e2cbfd0959aa8d47c2ce50" }, "downloads": -1, "filename": "jsonmodels-2.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "94b40b4254997e0cbaab3686d701cca5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18477, "upload_time": "2017-02-01T22:12:21", "url": "https://files.pythonhosted.org/packages/02/e4/268b4d532e3430ada7a3a7f3b11b273be20f12369d4c9e089b9f375e95bb/jsonmodels-2.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73bd73bdb6e2027f9fff6874a6cea189", "sha256": "ef214f87e4dfca3878723852e50f9938c1c82ee5d012c31dc8b1ef59d19f6509" }, "downloads": -1, "filename": "jsonmodels-2.1.5.tar.gz", "has_sig": false, "md5_digest": "73bd73bdb6e2027f9fff6874a6cea189", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17049, "upload_time": "2017-02-01T22:14:31", "url": "https://files.pythonhosted.org/packages/b2/99/231711b2c9dcf316101d70834e1ac3e7f5bca87271d4db9e08aa842f94b7/jsonmodels-2.1.5.tar.gz" } ], "2.2": [ { "comment_text": "", "digests": { "md5": "adbcb192e421728244a2af8a7268d130", "sha256": "527cb11efb3e64567ab410bc53449c187f594f5972f43a579b55246e669b9f82" }, "downloads": -1, "filename": "jsonmodels-2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "adbcb192e421728244a2af8a7268d130", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19018, "upload_time": "2017-08-21T13:52:51", "url": "https://files.pythonhosted.org/packages/65/b9/228ff3e1b6998ff70152220956ebe527ddd3538bf3124545170f04ecf3f8/jsonmodels-2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66f5054f13592ff31b5244e22e1c30d0", "sha256": "3ff86d677e4292941a32a539a2ed27f332113473b03c6c5d3abde1bdc4d0a9c0" }, "downloads": -1, "filename": "jsonmodels-2.2.tar.gz", "has_sig": false, "md5_digest": "66f5054f13592ff31b5244e22e1c30d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17828, "upload_time": "2017-08-21T13:52:53", "url": "https://files.pythonhosted.org/packages/b4/49/ff2dc3a5b3826a2fab468fd577ed954e4627dc2d7913e74b13eedae1059d/jsonmodels-2.2.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "7b3cd03b6eea567a3a7447aeaec89035", "sha256": "b992d24820857a797e567e96437be01ce607424e8deb107182758f4851066a2c" }, "downloads": -1, "filename": "jsonmodels-2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b3cd03b6eea567a3a7447aeaec89035", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20178, "upload_time": "2018-02-04T11:38:41", "url": "https://files.pythonhosted.org/packages/cb/81/e46e814d1331210d0cbcb2f04df7311d9abd5deff5bb7e96f3fc7f648bf0/jsonmodels-2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e42b6c0078e731035ec3f1bf8a6cdc92", "sha256": "09e9639c85531e0f37991bb23a363494e37a2e89fb480dbc03d9556258f4ea47" }, "downloads": -1, "filename": "jsonmodels-2.3.tar.gz", "has_sig": false, "md5_digest": "e42b6c0078e731035ec3f1bf8a6cdc92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20978, "upload_time": "2018-02-04T11:38:51", "url": "https://files.pythonhosted.org/packages/ab/0f/e214845b49881d3b2bebd1f387eedc5b26ac5580353a0a38074e94439957/jsonmodels-2.3.tar.gz" } ], "2.4": [ { "comment_text": "", "digests": { "md5": "48147771535c4bec50e1a0327cd2a2c7", "sha256": "e25eb446843436cf232066365c57a4ab6af98fe8df4160b469fe3756e593793d" }, "downloads": -1, "filename": "jsonmodels-2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48147771535c4bec50e1a0327cd2a2c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20202, "upload_time": "2018-12-01T15:22:34", "url": "https://files.pythonhosted.org/packages/e9/c4/93ce38601474210eeb97b50c7f65d48827ee19f5e7b6e51b63b3684059df/jsonmodels-2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96132e252887f840d23792c03fad2039", "sha256": "abc8dc334a1794513e511a75639f77c271ef6a2992b6793f3753c7335dd18775" }, "downloads": -1, "filename": "jsonmodels-2.4.tar.gz", "has_sig": false, "md5_digest": "96132e252887f840d23792c03fad2039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21045, "upload_time": "2018-12-01T15:22:37", "url": "https://files.pythonhosted.org/packages/68/00/524668dc751f9ef91e73c795b2073bf2ddb79728a474d1bcab9c6dc426d8/jsonmodels-2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "48147771535c4bec50e1a0327cd2a2c7", "sha256": "e25eb446843436cf232066365c57a4ab6af98fe8df4160b469fe3756e593793d" }, "downloads": -1, "filename": "jsonmodels-2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48147771535c4bec50e1a0327cd2a2c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20202, "upload_time": "2018-12-01T15:22:34", "url": "https://files.pythonhosted.org/packages/e9/c4/93ce38601474210eeb97b50c7f65d48827ee19f5e7b6e51b63b3684059df/jsonmodels-2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96132e252887f840d23792c03fad2039", "sha256": "abc8dc334a1794513e511a75639f77c271ef6a2992b6793f3753c7335dd18775" }, "downloads": -1, "filename": "jsonmodels-2.4.tar.gz", "has_sig": false, "md5_digest": "96132e252887f840d23792c03fad2039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21045, "upload_time": "2018-12-01T15:22:37", "url": "https://files.pythonhosted.org/packages/68/00/524668dc751f9ef91e73c795b2073bf2ddb79728a474d1bcab9c6dc426d8/jsonmodels-2.4.tar.gz" } ] }