{ "info": { "author": "Danny Roberts", "author_email": "droberts@dimagi.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# jsonobject\n\n[![Build Status](https://travis-ci.org/dimagi/jsonobject.png)](https://travis-ci.org/dimagi/jsonobject)\n\njsonobject is a python library for handling deeply nested JSON objects\nas well-schema'd python objects.\n\njsonobject is made by [Dimagi](https://www.dimagi.com/), where we build, use, and contribute to OSS in our mission to reduce inequity in the world.\n\njsonobject is inspired by and largely API compatible with\nthe `Document`/`DocumentSchema` portion of `couchdbkit`.\nBecause jsonobject is not only simpler and standalone, but also faster,\nwe also maintain a fork of `couchdbkit`, [jsonobject-couchdbkit](https://pypi.python.org/pypi/jsonobject-couchdbkit),\nthat is backed by `jsonobject` and works seamlessly as a swap-in replacement\nfor the main library.\n\nIt is used heavily in [CommCare HQ](https://www.commcarehq.org/) ([source](https://github.com/dimagi/commcare-hq)),\nand the API is largely stable,\nbut more advanced features may change in the future.\n\n## Getting Started\n\nTo install using pip, simply run\n\n```\npip install jsonobject\n```\n\n\n### Example\n\nThe code below defines a simple user model, and its natural mapping to JSON.\n\n```python\nfrom jsonobject import *\n\nclass User(JsonObject):\n username = StringProperty()\n name = StringProperty()\n active = BooleanProperty(default=False)\n date_joined = DateTimeProperty()\n tags = ListProperty(unicode)\n\n```\n\nOnce it is defined, it can be used to wrap or produce deserialized JSON.\n\n```python\n>>> user1 = User(\n name='John Doe',\n username='jdoe',\n date_joined=datetime.datetime.utcnow(),\n tags=['generic', 'anonymous']\n)\n>>> user1.to_json()\n{\n 'name': u'John Doe',\n 'username': u'jdoe',\n 'active': False,\n 'date_joined': '2013-08-05T02:46:58Z',\n 'tags': [u'generic', u'anonymous']\n}\n```\n\nNotice that the datetime is converted to an ISO format string in JSON, but is a real datetime on the object:\n\n```python\n>>> user1.date_joined\ndatetime.datetime(2013, 8, 5, 2, 46, 58)\n```\n\n### The jsonobject Constructor\n\nA JsonObject subclass that has been defined as `User` above\ncomes with a lot of built-in functionality.\nThe basic operations are\n\n1. Make a new object from deserialized JSON (e.g. the output of `json.loads`)\n2. Construct a new object with given values\n3. Modify an object\n4. Dump to deserialized json (e.g. the input of `json.dumps`)\n\n1 & 2 are accomplished with the constructor. There are two main ways to call\nthe constructor:\n\n```python\nUser(\n name='John Doe',\n username='jdoe',\n date_joined=datetime.datetime.utcnow(),\n tags=['generic', 'anonymous']\n)\n```\n\nas above (satisfies #2) and\n\n```python\nUser({\n 'name': u'John Doe',\n 'username': u'jdoe',\n 'active': False,\n 'date_joined': '2013-08-05T02:46:58Z',\n 'tags': [u'generic', u'anonymous']\n})\n```\n\n(satisfies #1). These two styles can also be mixed and matched:\n\n```python\nUser({\n 'name': u'John Doe',\n 'username': u'jdoe',\n 'active': False,\n 'tags': [u'generic', u'anonymous']\n}, date_joined=datetime.datetime.utcnow())\n```\n\nNotice how datetimes are stored as strings in the deserialized JSON, but as\n`datetime.datetime`s in the nice python object\u2014we will refer to these as the\n\"json\" representation and the \"python\" representation, or alternatively the\n\"unwrapped\" representation and the \"wrapped\" representation.\n\n**Gotcha**.\nWhen calling the constructor, remember that the keyword argument style\nrequires you to pass in the \"python\" representation (e.g. a `datetime`)\nwhile the json-wrapping style of passing in a `dict` requires you to give it\nin the \"json\" representation (e.g. a datetime-formatted string).\n\n## Property Types\n\nThere are two main kinds of property types:\nscalar types (like string, bool, int, datetime, etc.)\nand container types (list, dict, set).\nThey are dealt with separately below.\n\n### Scalar Types\n\nAll scalar properties can take the value `None` in addition to\nthe values particular to their type (strings, bools, etc).\nIf set to the wrong type,\nproperties raise a `jsonobject.exceptions.BadValueError`:\n\n```python\nclass Foo(jsonobject.JsonObject):\n b = jsonobject.BooleanProperty()\n```\n\n```python\n>>> Foo(b=0)\nTraceback (most recent call last):\n [...]\njsonobject.exceptions.BadValueError: 0 not of type \n```\n\n#### `jsonobject.StringProperty`\n\nMaps to a `unicode`. Usage:\n\n```python\nclass Foo(jsonobject.JsonObject):\n s = jsonobject.StringProperty()\n```\n\nIf you set it to an ascii `str` it will implicitly convert to `unicode`:\n\n```python\n>>> Foo(s='hi') # converts to unicode\nFoo(s=u'hi')\n```\n\nIf you set it to a non-ascii `str`, it will fail with a `UnicodeDecodeError`:\n\n```python\n>>> Foo(s='\\xff')\nTraceback (most recent call last):\n [...]\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)\n```\n\n#### `jsonobject.BooleanProperty`\n\nMaps to a `bool`.\n\n\n#### `jsonobject.IntegerProperty`\n\nMaps to an `int` or `long`.\n\n#### `jsonobject.FloatProperty`\n\nMaps to a `float`.\n\n#### `jsonobject.DecimalProperty`\n\nMaps to a `decimal.Decimal` and stored as a JSON string.\nThis type, unlike `FloatProperty`,\nstores the \"human\" representation of the digits. Usage:\n\n```python\nclass Foo(jsonobject.JsonObject):\n number = jsonobject.DecimalProperty()\n```\n\nIf you set it to an `int` or `float`, it will implicitly convert to `Decimal`:\n\n```python\n>>> Foo(number=1)\nFoo(number=Decimal('1'))\n>>> Foo(number=1.2)\nFoo(number=Decimal('1.2'))\n```\n\nIf you set it to a `str` or `unicode`, however, it raises an `AssertionError`:\n\n```python\n>>> Foo(number='1.0')\nTraceback (most recent call last):\n [...]\nAssertionError\n```\n\nTodo: this should really raise a `BadValueError`.\n\nIf you pass in json in which the Decimal value is a `str` or `unicode`,\nbut it is malformed, it throws the same errors as `decimal.Decimal`.\n\n```python\n>>> Foo({'number': '1.0'})\nFoo(number=Decimal('1.0'))\n>>> Foo({'number': '1.0.0'})\nTraceback (most recent call last):\n [...]\ndecimal.InvalidOperation: Invalid literal for Decimal: '1.0.0'\n```\n\n#### `jsonobject.DateProperty`\n\nMaps to a `datetime.date` and stored as a JSON string of the format\n`'%Y-%m-%d'`. Usage:\n\n```python\nclass Foo(jsonobject.JsonObject):\n date = jsonobject.DateProperty()\n```\n\nWrapping a badly formatted string raises a `BadValueError`:\n\n```python\n>>> Foo({'date': 'foo'})\nTraceback (most recent call last):\n [...]\njsonobject.exceptions.BadValueError: 'foo' is not a date-formatted string\n```\n\n#### `jsonobject.DateTimeProperty`\n\nMaps to a timezone-unaware `datetime.datetime`\nand stored as a JSON string of the format\n`'%Y-%m-%dT%H:%M:%SZ'`.\n\nWhile it works perfectly with good inputs, it is extremely sloppy when it comes\nto dealing with inputs that don't match the exact specified format.\nRather than matching stricty, it simply truncates the string\nto the first 19 characters and tries to parse that as `'%Y-%m-%dT%H:%M:%S'`.\nThis ignores both microseconds and, even worse, *the timezone*.\nThis is a holdover from `couchdbkit`.\n\nIn newer versions of jsonboject, you may optionally specify\na `DateTimeProperty` as `exact`:\n\n```python\nclass Foo(jsonobject.JsonObject):\n date = jsonobject.DateTimeProperty(exact=True)\n```\n\nThis provides a much cleaner conversion model\nthat has the following properties:\n\n1. It preserves microseconds\n2. The incoming JSON representation **must** match `'%Y-%m-%dT%H:%M:%S.%fZ'`\n exactly. (This is similar to the default output,\n except for the mandatory 6 decimal places, i.e. milliseconds.)\n3. Representations that don't match exactly will be rejected with a\n `BadValueError`.\n\n**Recommendation**:\nIf you are not locked into `couchdbkit`'s earlier bad behavior,\nyou should **always** use the `exact=True` flag on `DateTimeProperty`s\nand `TimeProperty`s (below).\n\n#### `jsonobject.TimeProperty`\n\nMaps to a `datetime.time`, stored as a JSON string of the format\n`'%H:%M:%S'`.\n\nTo get access to milliseconds and strict behavior, use the `exact=True` setting\nwhich strictly accepts the format `'%H:%M:%S.%f'`. This is always recommended.\nFor more information please read the previous section on `DateTimeProperty`.\n\n### Container Types\n\nContainer types generally take a first argument, `item_type`,\nspecifying the type of the contained objects.\n\n\n#### `jsonobject.ObjectProperty(item_type)`\n\nMaps to a `dict` that has a schema specified by `item_type`,\nwhich must be itself a subclass of `JsonObject`. Usage:\n\n```python\nclass Bar(jsonobject.JsonObject):\n name = jsonobject.StringProperty()\n\n\nclass Foo(jsonobject.JsonObject):\n bar = jsonobject.ObjectProperty(Bar)\n```\n\nIf not specified, it will be set to a new object with default values:\n\n```python\n>>> Foo()\nFoo(bar=Bar(name=None))\n```\n\nIf you want it set to `None` you must do so explicitly.\n\n#### `jsonobject.ListProperty(item_type)`\n\nMaps to a `list` with items of type `item_type`,\nwhich can be any of the following:\n\n- an _instance_ of a property class. This is the most flexible option,\n and all validation (`required`, etc.) will be done as as specified by the property instance.\n- a property class, which will be instantiated with `required=True`\n- one of their corresponding python types (i.e. `int` for `IntegerProperty`, etc.)\n- a `JsonObject` subclass\n\nNote that a property _class_ (as well as the related python type syntax)\nwill be instantiated with `required=True`,\nso `ListProperty(IntegerProperty)` and `ListProperty(int)` do not allow `None`, and\n`ListProperty(IntegerProperty())` _does_ allow `None`.\n\nThe serialization behavior of whatever item type is given is recursively\napplied to each member of the list.\n\nIf not specified, it will be set to an empty list.\n\n#### `jsonobject.SetProperty(item_type)`\n\nMaps to a `set` and stored as a list (with only unique elements).\nOtherwise its behavior is very much like `ListProperty`'s.\n\n#### `jsonobject.DictProperty(item_type)`\n\nMaps to a `dict` with string keys and values specified by `item_type`.\nOtherwise its behavior is very much like `ListProperty`'s.\n\nIf not specified, it will be set to an empty dict.\n\n### Other\n\n#### `jsonobject.DefaultProperty()`\n\nThis flexibly wraps any valid JSON, including all scalar and container types,\ndynamically detecting the value's type and treating it\nwith the corresponding property.\n\n## Property options\n\nCertain parameters may be passed in to any property.\n\nFor example, `required` is one such parameter in the example below:\n\n```python\n\nclass User(JsonObject):\n username = StringProperty(required=True)\n\n```\n\nHere is a complete list of properties:\n\n- `default`\n\n Specifies a default value for the property\n\n- `name`\n\n The name of the property within the JSON representation\\*.\n This defaults to the name of the python property, but you can override it\n if you wish. This can be useful, for example, to get around conflicting\n with python keywords:\n ```python\n >>> class Route(JsonObject):\n ... from_ = StringProperty(name='from')\n ... to = StringProperty() # name='to' by default\n >>> Route(from_='me', to='you').to_json()\n {'from': u'me', 'to': u'you'}\n ```\n Notice how an underscore is present in the python property name ('from_'),\n but absent in the JSON property name ('from').\n\n\n \n \\*If you're wondering how `StringProperty`'s `name` parameter\n could possibly default to `to` in the example above,\n when it doesn't have access to the `Route` class's properties at init time,\n you're completely right.\n The behavior described is implemented in `JsonObject`'s `__metaclass__`,\n which *does* have access to the `Route` class's properties.\n \n\n- `choices`\n\n A list of allowed values for the property.\n (Unless otherwise specified, `None` is also an allowed value.)\n\n- `required`\n\n Defaults to `False`.\n For scalar properties `requires` means that the value `None` may not be used.\n For container properties it means they may not be empty\n or take the value `None`.\n\n- `exclude_if_none`\n\n Defaults to `False`. When set to true, this property will be excluded\n from the JSON output when its value is falsey.\n (Note that currently this is at odds with the parameter's name,\n since the condition is that it is falsey, not that it is `None`).\n\n- `validators`\n\n A single validator function or list of validator functions.\n Each validator function should raise an exception on invalid input\n and do nothing otherwise.\n\n- `verbose_name`\n\n This property does nothing and was added to match couchdbkit's API.\n\n\n## Performance Comparison with Couchdbkit\n\nIn order to do a direct comparison with couchdbkit, the test suite includes a large sample schema originally written with couchdbkit. It is easy to swap in jsonobject for couchdbkit and run the tests with each. Here are the results:\n\n```\n$ python -m unittest test.test_couchdbkit\n....\n----------------------------------------------------------------------\nRan 4 tests in 1.403s\n\nOK\n$ python -m unittest test.test_couchdbkit\n....\n----------------------------------------------------------------------\nRan 4 tests in 0.153s\n\nOK\n```\n\n## Running tests\n\nYou must rebuild C files for the tests to pick up your changes. Try this for iterating:\n\n```\n$ python setup.py build_ext --inplace && python setup.py test\n```\n\n\n## Recreating C source files\n\nFor any changes in the pyx files, the corresponding C files should be recompiled with\n\n```\n$ find jsonobject -iname '*.c' -delete\n$ find jsonobject -iname '*.so' -delete\n$ python setup.py build_ext --inplace\n```\n\nThese changes should be committed independently of the non-automated changes you made.", "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/dimagi/jsonobject", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "jsonobject", "package_url": "https://pypi.org/project/jsonobject/", "platform": "", "project_url": "https://pypi.org/project/jsonobject/", "project_urls": { "Homepage": "https://github.com/dimagi/jsonobject" }, "release_url": "https://pypi.org/project/jsonobject/0.9.9/", "requires_dist": null, "requires_python": "", "summary": "A library for dealing with JSON as python objects", "version": "0.9.9" }, "last_serial": 5267584, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "623e6c33112a71bda8dbc22b301a1e17", "sha256": "8c1b47fdc57c54847e152db7f5852fb4385fd94c35e5fb9bb9d4b13d3f5c4100" }, "downloads": -1, "filename": "jsonobject-0.0.1.tar.gz", "has_sig": false, "md5_digest": "623e6c33112a71bda8dbc22b301a1e17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3728, "upload_time": "2013-08-05T05:03:46", "url": "https://files.pythonhosted.org/packages/0e/f6/13c19808d45d70ab6b6f479fbf5b7bf6460408c102ccc8fcfc0667867edf/jsonobject-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4a03e5cc193303bf99169c65b235ee65", "sha256": "8c2aa1f98d5c7dfc7fa28bcf1f0d433e05a3cacd3567887cd1867872c88806f1" }, "downloads": -1, "filename": "jsonobject-0.0.2.tar.gz", "has_sig": false, "md5_digest": "4a03e5cc193303bf99169c65b235ee65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3897, "upload_time": "2013-08-05T05:17:13", "url": "https://files.pythonhosted.org/packages/63/8d/ca3d62c49fd2c1428fc1d80b8bde4d0edd4344fb85d715120a33d59dd75b/jsonobject-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "bf8a6b4a88310a9089172e880d130bbe", "sha256": "3a57bd1752ed70c5cd5517c815733a6c682b222fae9e8642ab36d17598cace9f" }, "downloads": -1, "filename": "jsonobject-0.0.3.tar.gz", "has_sig": false, "md5_digest": "bf8a6b4a88310a9089172e880d130bbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3979, "upload_time": "2013-08-05T05:55:45", "url": "https://files.pythonhosted.org/packages/02/e2/f14835a178fb3f326fe3c4809331281d0c5841fd0dcfbdba3efa3fb9b5db/jsonobject-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e4a89504c9b2fa1fd78b612273215c64", "sha256": "8ba7dd93d094425b41e06a2bdd4dc67dbe94d0f0814a703138a9f14ff031d5d6" }, "downloads": -1, "filename": "jsonobject-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e4a89504c9b2fa1fd78b612273215c64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6729, "upload_time": "2013-08-13T21:47:16", "url": "https://files.pythonhosted.org/packages/d5/ad/7a16836d07cca29fbce9869d6b6b662d4a1e33895120f522aa8e3be88964/jsonobject-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "002883c79824eeaa00b22adb4366b62f", "sha256": "4e0871e0d89d1b582cbcebc35ecdf7bfa290f99ac95b538a4558e560968bdecb" }, "downloads": -1, "filename": "jsonobject-0.0.5.tar.gz", "has_sig": false, "md5_digest": "002883c79824eeaa00b22adb4366b62f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7007, "upload_time": "2013-08-14T17:39:05", "url": "https://files.pythonhosted.org/packages/0b/c0/157c39652f5cfe05a63f3adedaef5f32896a5e60c5f2f62de80694215066/jsonobject-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "26d00eeabc8b0c28242886a760c8ac17", "sha256": "63f92f0f19f90c382a54e4ca6e5efc947ea6378cd800312274d767150a02244a" }, "downloads": -1, "filename": "jsonobject-0.0.6.tar.gz", "has_sig": false, "md5_digest": "26d00eeabc8b0c28242886a760c8ac17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7410, "upload_time": "2013-08-14T21:48:19", "url": "https://files.pythonhosted.org/packages/a4/ff/6423dc0c018cf4d0737149272c54afb6a6d5421656f8d068dec3d7bb44f9/jsonobject-0.0.6.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "56efdffe61de2db7d8add8c238049803", "sha256": "3004a6cfc71d467bbc232f09f22307b5492fda2f677875577bb8c471046c8590" }, "downloads": -1, "filename": "jsonobject-0.1.0.tar.gz", "has_sig": false, "md5_digest": "56efdffe61de2db7d8add8c238049803", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11162, "upload_time": "2013-08-23T22:15:11", "url": "https://files.pythonhosted.org/packages/c9/4b/39aef9f3a8b0ab84de62ac002879aaf370954b2aee7b6c239b34f7eb4928/jsonobject-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "346d588340e8439963b12260f4e18a30", "sha256": "e4559bcc18cc1f4ae4099e5938349e1c50c756a0c684a5fcbac8fa326395bf38" }, "downloads": -1, "filename": "jsonobject-0.2.0.tar.gz", "has_sig": false, "md5_digest": "346d588340e8439963b12260f4e18a30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11942, "upload_time": "2013-08-28T15:24:33", "url": "https://files.pythonhosted.org/packages/e2/8e/8d87a470a057b41f233288787e9f80330e5fae7e911f1106d80f6f8d543a/jsonobject-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6e8ac01f86557313437c8671c182e444", "sha256": "d34d7330db29bb1d50f8da0262265213d770b402587fcaafddfde59490e78492" }, "downloads": -1, "filename": "jsonobject-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6e8ac01f86557313437c8671c182e444", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11658, "upload_time": "2013-08-29T17:04:05", "url": "https://files.pythonhosted.org/packages/d1/3b/9fb75619a2c010660f707f25eda0490556a86fc20e2faa1a717ea9b40170/jsonobject-0.2.1.tar.gz" } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "042fe5b843f2aa3d3de37dcc27dcbf9c", "sha256": "f57353071adbb7ecf636df44c65ee5433b2f6b907d8381d894b892e0ba63089a" }, "downloads": -1, "filename": "jsonobject-0.2.10.tar.gz", "has_sig": false, "md5_digest": "042fe5b843f2aa3d3de37dcc27dcbf9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12365, "upload_time": "2013-12-13T22:42:04", "url": "https://files.pythonhosted.org/packages/f9/73/065e4e3e8b36e5c6310d2d7381344ef0f2b9e0da73a21f79b24d3b61bf74/jsonobject-0.2.10.tar.gz" } ], "0.2.11": [ { "comment_text": "", "digests": { "md5": "32eb6e69ddb41b77eba6e18fb94daf76", "sha256": "802f57c1b2012681350d70257345ad5f90e5415c1691551cb1aaa6bc9b815b70" }, "downloads": -1, "filename": "jsonobject-0.2.11.tar.gz", "has_sig": false, "md5_digest": "32eb6e69ddb41b77eba6e18fb94daf76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12495, "upload_time": "2014-01-21T20:43:39", "url": "https://files.pythonhosted.org/packages/0f/45/c43a5a903c1eb35d4daa7015a490248049789195e8c605ac7bfd251765a6/jsonobject-0.2.11.tar.gz" } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "57d35e456017f246148e9fe4f2e1d733", "sha256": "b3c43dacf01b3023b580e5ba8c5271a1e14269388e4f248c1aa5fe405e6a97fa" }, "downloads": -1, "filename": "jsonobject-0.2.12.tar.gz", "has_sig": false, "md5_digest": "57d35e456017f246148e9fe4f2e1d733", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12546, "upload_time": "2014-01-23T08:04:15", "url": "https://files.pythonhosted.org/packages/89/9e/b178b1eaf8a24a65d9eea6fada873981d018ac13116cad2033304ac66d5a/jsonobject-0.2.12.tar.gz" } ], "0.2.13": [ { "comment_text": "", "digests": { "md5": "1d1fc5c85998776ffa2b0cb2ce874fec", "sha256": "f6c43ca8ec174b0c1826f9815aebd495a8aa77cd1afa295e144b59aedbebd38f" }, "downloads": -1, "filename": "jsonobject-0.2.13.tar.gz", "has_sig": false, "md5_digest": "1d1fc5c85998776ffa2b0cb2ce874fec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12689, "upload_time": "2014-03-28T18:13:38", "url": "https://files.pythonhosted.org/packages/91/e1/0f7275f50817cfa316afb19be9b6b5b0fa6b070f0afe1bec433f71b815a3/jsonobject-0.2.13.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "26c7697b85019b9d8de1289efd788694", "sha256": "79eb6a4dd04a9344c60e254eb40dcb2f281bb18e792ee6a1d001201238f1a983" }, "downloads": -1, "filename": "jsonobject-0.2.2.tar.gz", "has_sig": false, "md5_digest": "26c7697b85019b9d8de1289efd788694", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11712, "upload_time": "2013-08-29T21:20:17", "url": "https://files.pythonhosted.org/packages/a8/b2/352ab9f08e3d06b83310c4a84f6ab3f6ab5f5fde91bd33814f45e3969c7a/jsonobject-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "898dd8169bf47976ef81e92e2b7a032e", "sha256": "b7a1bbfe5cef440a681a5626f63130597f0f21caef6e9272fdc4cc6db03daad2" }, "downloads": -1, "filename": "jsonobject-0.2.3.tar.gz", "has_sig": false, "md5_digest": "898dd8169bf47976ef81e92e2b7a032e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11824, "upload_time": "2013-08-30T02:37:25", "url": "https://files.pythonhosted.org/packages/f7/15/d37316c6e11e528b452cfec669ac2e04b6e4dfd963734dc9c78b7f09bc04/jsonobject-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "384768850d55622ea6de91c15b579900", "sha256": "322cb6e9e8155989258413aee4be5cb100ac318359cd3d3ceb1af1fa48e0ca00" }, "downloads": -1, "filename": "jsonobject-0.2.4.tar.gz", "has_sig": false, "md5_digest": "384768850d55622ea6de91c15b579900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11830, "upload_time": "2013-08-30T02:45:48", "url": "https://files.pythonhosted.org/packages/31/42/ab094af3f1df83b0839f95d78d44bc72247f1c5c0305888ce797285677b5/jsonobject-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "96649718ae2b3d7c87b8038b5ef8d39a", "sha256": "8645b5a54458ba72044c0564420b893c8b24fbc73c1bc222310e97b45615b441" }, "downloads": -1, "filename": "jsonobject-0.2.5.tar.gz", "has_sig": false, "md5_digest": "96649718ae2b3d7c87b8038b5ef8d39a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11890, "upload_time": "2013-09-01T00:27:13", "url": "https://files.pythonhosted.org/packages/e3/7a/aa016e4eb27fa964f079793de55abeaed9521210704dac04c3556876b1ce/jsonobject-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "69f85a23dde3cd76de7da7000047448e", "sha256": "e290d526e8b2c60f2950638504087c5118aa91d5529e5e95c836b027803a2384" }, "downloads": -1, "filename": "jsonobject-0.2.6.tar.gz", "has_sig": false, "md5_digest": "69f85a23dde3cd76de7da7000047448e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11927, "upload_time": "2013-09-09T17:55:28", "url": "https://files.pythonhosted.org/packages/2c/39/cb8902ee8eafaceb047e4053fb16132d31ae055c22a510220dfa76fbebb0/jsonobject-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "dc8643b601f688052acbcbd6da274557", "sha256": "fc13c4977ec9b4db8de934e60fd5064d2dfe4ffdfdf429e8089300546e5b43d1" }, "downloads": -1, "filename": "jsonobject-0.2.7.tar.gz", "has_sig": false, "md5_digest": "dc8643b601f688052acbcbd6da274557", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12039, "upload_time": "2013-09-17T20:42:08", "url": "https://files.pythonhosted.org/packages/1f/41/511763cf4f7afa72950d2c51822af62414452defd479b913ee490f6e0d94/jsonobject-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "320dd21ae1adaea7e047b4dc472c89c9", "sha256": "099c8884afa844bca726e1e99ac9a977e413e9eacd0b9d56912473b5035917be" }, "downloads": -1, "filename": "jsonobject-0.2.8.tar.gz", "has_sig": false, "md5_digest": "320dd21ae1adaea7e047b4dc472c89c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12091, "upload_time": "2013-10-08T21:44:28", "url": "https://files.pythonhosted.org/packages/9b/a5/c9e1f2a85110f6241e68491d0de0a7e7eff4b98f37fdc822c5c479a816ff/jsonobject-0.2.8.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "a6b25b24fbd55d596ecff28c6f9f8643", "sha256": "d81a11ac59981cb0142c135f020dd2f33620fa49d12f92854d98bad9d59d4082" }, "downloads": -1, "filename": "jsonobject-0.2.9.tar.gz", "has_sig": false, "md5_digest": "a6b25b24fbd55d596ecff28c6f9f8643", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12146, "upload_time": "2013-10-09T15:41:57", "url": "https://files.pythonhosted.org/packages/72/dd/293b821f9cb32bb4413202eab0fb886ab5e30fe0fb44672dcde2014c4d57/jsonobject-0.2.9.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "99d748948252545d1307f436e3375207", "sha256": "dc408d3b0bd4462e28ba5498bdcaeb9cbb14c22cdfd6ecccc49c76c11c206f76" }, "downloads": -1, "filename": "jsonobject-0.3.0.tar.gz", "has_sig": false, "md5_digest": "99d748948252545d1307f436e3375207", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12843, "upload_time": "2013-11-03T12:27:38", "url": "https://files.pythonhosted.org/packages/cd/70/78e58f429f4b91cc1918d8f8ec956909620aaf35c9cb95a441deecb4a298/jsonobject-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6cf4aded578dc91279ea7e1e2b00d0a8", "sha256": "6ce0725ef117d734fb227f7c6f03061607bcbccd675e437c8e523c52f1c6dace" }, "downloads": -1, "filename": "jsonobject-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6cf4aded578dc91279ea7e1e2b00d0a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12701, "upload_time": "2014-04-04T21:44:57", "url": "https://files.pythonhosted.org/packages/9f/d9/ddc4962d02f113f1555d9aedce13c7256aeb839e81b8496bf7d02e2a8459/jsonobject-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ca5b1c24db475f499eafa081a9c240d9", "sha256": "e46e19f010356bc574103eed25668f5f8ce15107d34581c3c12e9e9861db2c7f" }, "downloads": -1, "filename": "jsonobject-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ca5b1c24db475f499eafa081a9c240d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12694, "upload_time": "2014-04-07T16:53:51", "url": "https://files.pythonhosted.org/packages/86/86/c31b805ec7317228c276545c21e93319463934012ba11629ea6dca9d83e6/jsonobject-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "9aa66ac6829e2f4dc7c02516082a6f85", "sha256": "72bdd192de40f46d0941a8e72ba08f5a02a11c63c5bbbfa2a4d7da6ed6e029c4" }, "downloads": -1, "filename": "jsonobject-0.4.2.tar.gz", "has_sig": false, "md5_digest": "9aa66ac6829e2f4dc7c02516082a6f85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12691, "upload_time": "2014-04-08T16:31:18", "url": "https://files.pythonhosted.org/packages/7a/c1/d206bf5eaf618923bc7215f9e2599d770427f00cf35539f5b4e785e3b56a/jsonobject-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "353306fde405331b170bb647ab121fd9", "sha256": "7b49e149663e75496f3542e3e339d5dd613526c431ee0988508436ad36ec0497" }, "downloads": -1, "filename": "jsonobject-0.4.3.tar.gz", "has_sig": false, "md5_digest": "353306fde405331b170bb647ab121fd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12763, "upload_time": "2014-04-09T22:19:14", "url": "https://files.pythonhosted.org/packages/ff/a3/af9df4b60cb802d41a7cd406df9a456be481e47c965fc65771055a80c397/jsonobject-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "69a20865ad52f44dd70498ecefe41f47", "sha256": "d84baa6ac7e2a7f11b17c0a04e5f58512afff5e6757c83457e4eb84801c743ee" }, "downloads": -1, "filename": "jsonobject-0.5.0.tar.gz", "has_sig": false, "md5_digest": "69a20865ad52f44dd70498ecefe41f47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17077, "upload_time": "2014-09-04T18:57:38", "url": "https://files.pythonhosted.org/packages/7c/4a/0266b7276e51b583beee2664628d4ffd1b13cba9ef2cdbeabbb922bd6470/jsonobject-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "035ad243c3f7a60b10aa53c18fd008bb", "sha256": "a927e668cffe091b77c69ca2703ac2bf1439c9b230f75d488648317afb22fd01" }, "downloads": -1, "filename": "jsonobject-0.6.0.tar.gz", "has_sig": false, "md5_digest": "035ad243c3f7a60b10aa53c18fd008bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19298, "upload_time": "2014-10-15T18:39:09", "url": "https://files.pythonhosted.org/packages/79/47/c66c211b41fde43594b40572a2edb183021ffa759dcf260695fe9a4b2fd9/jsonobject-0.6.0.tar.gz" } ], "0.6.0b1": [ { "comment_text": "", "digests": { "md5": "5af8aa1e1dc4e3ce9934a91cf21c2d05", "sha256": "61bf261e853e14819fe0f6496ea0055c373ee9af27c9ccdb2b50074c64dc7e99" }, "downloads": -1, "filename": "jsonobject-0.6.0b1.tar.gz", "has_sig": false, "md5_digest": "5af8aa1e1dc4e3ce9934a91cf21c2d05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17956, "upload_time": "2014-09-09T22:03:05", "url": "https://files.pythonhosted.org/packages/f0/d6/84ac17482390363df49a53e2672014d4a1b6457dcf643f331dbb3c349726/jsonobject-0.6.0b1.tar.gz" } ], "0.6.0b2": [ { "comment_text": "", "digests": { "md5": "527d92bfe7ac595ad2ef95b9c9890f34", "sha256": "54a324fd8077e7da10d4d8fc35718838e90bb232ab3ed4ade400543e112a484d" }, "downloads": -1, "filename": "jsonobject-0.6.0b2.tar.gz", "has_sig": false, "md5_digest": "527d92bfe7ac595ad2ef95b9c9890f34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19250, "upload_time": "2014-10-03T21:44:33", "url": "https://files.pythonhosted.org/packages/7d/d6/73536c960d72071715d19522bc29235673f4be2f7fcd00ebc1b19c8d2ebc/jsonobject-0.6.0b2.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "de4de8518f70f8cbcb83f76541184209", "sha256": "5df769a6dc21b41e602ee1a6c1e927fce07e9dc8bb33f5413e5335b92f02c9a8" }, "downloads": -1, "filename": "jsonobject-0.6.1.tar.gz", "has_sig": false, "md5_digest": "de4de8518f70f8cbcb83f76541184209", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19724, "upload_time": "2014-11-26T16:30:02", "url": "https://files.pythonhosted.org/packages/e8/9d/ad8df62f65b0c75be6710cc28f4af16667b99187b308a37eb3d2157c73a4/jsonobject-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "b68ce21f6e61f9537d2b085e43ec4993", "sha256": "56f256bca6fcee89acad7fe13f671047aed55c50934366b387bc64f428f1f078" }, "downloads": -1, "filename": "jsonobject-0.6.2.tar.gz", "has_sig": false, "md5_digest": "b68ce21f6e61f9537d2b085e43ec4993", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22942, "upload_time": "2015-03-19T19:09:51", "url": "https://files.pythonhosted.org/packages/e5/06/d5a1a8ef9b9158d7a34b479355d34afcb0e72c91cc0388da7c1a6330d52a/jsonobject-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "657103436f5a24b5bf14052d6faf8edf", "sha256": "bce7bf0d4d673accd069a4cc169aa9aef67e4154b50fb279d904cb37e68faaad" }, "downloads": -1, "filename": "jsonobject-0.6.3.tar.gz", "has_sig": false, "md5_digest": "657103436f5a24b5bf14052d6faf8edf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19870, "upload_time": "2015-03-20T23:15:10", "url": "https://files.pythonhosted.org/packages/7b/11/766cb2148df51f7fdd2cc87f12bd77a46f2efc1acc20549dd41fca6ebd2a/jsonobject-0.6.3.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "62339f9a329685af1f0fd087e1c52ccd", "sha256": "23e064c5cd1becd4097f47c6ab1661e3c3fc737073f734049ea679d6073e7078" }, "downloads": -1, "filename": "jsonobject-0.7.0.tar.gz", "has_sig": false, "md5_digest": "62339f9a329685af1f0fd087e1c52ccd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20103, "upload_time": "2015-06-17T19:52:20", "url": "https://files.pythonhosted.org/packages/08/c8/8983c26d548e10c139918fa472fe8d7c51bb176681a09f38592782cee3ce/jsonobject-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "e438f4c5fffff230e5d867cb43400eb8", "sha256": "b59a7a0165d7aff8365d7e7be1aa6f87f3266bef019414af3f5d122d62ceb3d9" }, "downloads": -1, "filename": "jsonobject-0.7.1.tar.gz", "has_sig": false, "md5_digest": "e438f4c5fffff230e5d867cb43400eb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20123, "upload_time": "2015-08-03T14:15:05", "url": "https://files.pythonhosted.org/packages/0f/d4/da379e416671e568b7b1e1f6feed91e6c82738dbdfaa1e65d4bdada37d8f/jsonobject-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "7f2ab2110b10d6e0adef2d78774e759b", "sha256": "75edf826b962e4de42374bbe2f47024d846f44548be5c02adac120ed1184d2b2" }, "downloads": -1, "filename": "jsonobject-0.8.0.tar.gz", "has_sig": false, "md5_digest": "7f2ab2110b10d6e0adef2d78774e759b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 366240, "upload_time": "2018-01-17T19:21:20", "url": "https://files.pythonhosted.org/packages/37/6f/b91f155123db31017c7be5e9cb53ccd08fad22f5c7035432e89391c38fd3/jsonobject-0.8.0.tar.gz" } ], "0.8.0a1": [ { "comment_text": "", "digests": { "md5": "698c81fa5d4b8fb92c1a159c6093f370", "sha256": "d98eda2f6de3b883261875eec442d55365f931d7d7ec1520ad7629c71003dae3" }, "downloads": -1, "filename": "jsonobject-0.8.0a1.tar.gz", "has_sig": false, "md5_digest": "698c81fa5d4b8fb92c1a159c6093f370", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 356825, "upload_time": "2018-01-15T20:45:55", "url": "https://files.pythonhosted.org/packages/e1/06/d869e090a84327f7e0713a42537ec3cb497bc9e942f4cf71111d88ff61f9/jsonobject-0.8.0a1.tar.gz" } ], "0.8.0a2": [ { "comment_text": "", "digests": { "md5": "ed7195dcdfc9d17923d9f042057cbd3a", "sha256": "9b22c28cdd0d25d7ba10953e3c91846f8809e6eb3f0fece10b73838327c8b200" }, "downloads": -1, "filename": "jsonobject-0.8.0a2.tar.gz", "has_sig": false, "md5_digest": "ed7195dcdfc9d17923d9f042057cbd3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 366292, "upload_time": "2018-01-15T21:06:35", "url": "https://files.pythonhosted.org/packages/fd/e1/bcf2b50bcc210b1150043f6c3675240b46f33771e8cbb883cf1e8a6342f4/jsonobject-0.8.0a2.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "8a1e5031da3f7246a69267c843c39678", "sha256": "cd106b2cc6d651c68a9752d93f8662270c3c3a94f1984d5e2bcc5abd25b578db" }, "downloads": -1, "filename": "jsonobject-0.9.0-cp27-cp27m-macosx_10_11_x86_64.whl", "has_sig": true, "md5_digest": "8a1e5031da3f7246a69267c843c39678", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 380062, "upload_time": "2018-05-01T21:18:02", "url": "https://files.pythonhosted.org/packages/07/31/b9b6c80b7458c15287fc0c6390de1780709678d8a1089a8e7d2adf06ec67/jsonobject-0.9.0-cp27-cp27m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d44e7aec9ae334bc713acec69e6b780c", "sha256": "94d5cccbc5d0a92d91fefb8c804219c1ace54a336e7456903a8660ab20d8495b" }, "downloads": -1, "filename": "jsonobject-0.9.0.tar.gz", "has_sig": true, "md5_digest": "d44e7aec9ae334bc713acec69e6b780c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 367909, "upload_time": "2018-05-01T21:18:06", "url": "https://files.pythonhosted.org/packages/cd/ed/1d652ae179935599b118324ee9ac64dd79bf963d356456788f6a93692ed6/jsonobject-0.9.0.tar.gz" } ], "0.9.0a1": [ { "comment_text": "", "digests": { "md5": "3b055d7eed7cfb808f2625fb09241349", "sha256": "761c55edb02f5186decd9056212c273fb1968c03939e44c40a00473ea8976afa" }, "downloads": -1, "filename": "jsonobject-0.9.0a1-cp27-cp27m-macosx_10_11_x86_64.whl", "has_sig": true, "md5_digest": "3b055d7eed7cfb808f2625fb09241349", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 378656, "upload_time": "2018-05-01T00:39:39", "url": "https://files.pythonhosted.org/packages/fa/7f/7ba0f28708c79d8a39dcea47c1996bcf17ef407a3525e77f1418e0a3efa3/jsonobject-0.9.0a1-cp27-cp27m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a8b3bde470da97abc5f53a9319850ac2", "sha256": "e7442cf677b93cdeafc9f9bdae0f0f5659e750e70bfe549796974bb00dfd1aa5" }, "downloads": -1, "filename": "jsonobject-0.9.0a1.tar.gz", "has_sig": true, "md5_digest": "a8b3bde470da97abc5f53a9319850ac2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 365784, "upload_time": "2018-05-01T00:42:56", "url": "https://files.pythonhosted.org/packages/a2/49/cb0406f96bd321604d3265343bfdc32f6be6ee4b9532ea094c6ded4a38ff/jsonobject-0.9.0a1.tar.gz" } ], "0.9.0a2": [ { "comment_text": "", "digests": { "md5": "e7b256d12b009ba591c445168e7a3c97", "sha256": "bc971b9a585d8b84a1027178b8003628b8e791f1fd00a82d98ddce1e3c307b17" }, "downloads": -1, "filename": "jsonobject-0.9.0a2-cp27-cp27m-macosx_10_11_x86_64.whl", "has_sig": true, "md5_digest": "e7b256d12b009ba591c445168e7a3c97", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 378531, "upload_time": "2018-05-01T16:57:38", "url": "https://files.pythonhosted.org/packages/68/0c/ed9bc66215d4ec93987c74f44a7dc1cd4d648106be8919a50aa1d9205305/jsonobject-0.9.0a2-cp27-cp27m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b19023b227da56d671ad6d0ebe8be38a", "sha256": "c21fc0dfcb00d24a0995c96585071c863899fbb4d1ad610d6fa7342f75a631f2" }, "downloads": -1, "filename": "jsonobject-0.9.0a2.tar.gz", "has_sig": true, "md5_digest": "b19023b227da56d671ad6d0ebe8be38a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 365724, "upload_time": "2018-05-01T16:57:44", "url": "https://files.pythonhosted.org/packages/dc/09/39c9bd3f91061c4bcece1904df11a2c850436841e0ddca66111296d015e9/jsonobject-0.9.0a2.tar.gz" } ], "0.9.0a3": [ { "comment_text": "", "digests": { "md5": "caea1838554e298e505fb285c19a7b5b", "sha256": "e28814e2894cbec3438259a5d4f318b822f025672974014aa8cb6d4bea819057" }, "downloads": -1, "filename": "jsonobject-0.9.0a3-cp27-cp27m-macosx_10_11_x86_64.whl", "has_sig": true, "md5_digest": "caea1838554e298e505fb285c19a7b5b", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 380083, "upload_time": "2018-05-01T18:08:38", "url": "https://files.pythonhosted.org/packages/ce/7a/bf7d4caf42d281b17452556f91b573932af3499ccc8e1a1560192bf28b33/jsonobject-0.9.0a3-cp27-cp27m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d1a00596426c5d79b191bb1479dc03d1", "sha256": "9b944f64805cab222eff84f2a3fedc1ccb121b98e86fe633655196087ba9c3e5" }, "downloads": -1, "filename": "jsonobject-0.9.0a3.tar.gz", "has_sig": true, "md5_digest": "d1a00596426c5d79b191bb1479dc03d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 367921, "upload_time": "2018-05-01T18:08:43", "url": "https://files.pythonhosted.org/packages/4c/25/a9bb98d4d6e983d8497368410aa9a6f18c94c5f20dc1f88a48403b09dde4/jsonobject-0.9.0a3.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "a7c1ab72f0b111f2d8379c3bfde81507", "sha256": "0c08374902c1308240fd42a5f647fe08831b8765f7c84dec64f257de273f46ca" }, "downloads": -1, "filename": "jsonobject-0.9.1.tar.gz", "has_sig": false, "md5_digest": "a7c1ab72f0b111f2d8379c3bfde81507", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 372819, "upload_time": "2018-05-22T14:52:00", "url": "https://files.pythonhosted.org/packages/0c/c2/1a2638d0fc5da71de646c85503086e50837ee3133800cfb3d369e96ead13/jsonobject-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "804ec074603ecb833bfdd82ec084747b", "sha256": "260ba7db86dc7105c760b39a8b1dd4fdab12bee76202b420d831da809a20a66f" }, "downloads": -1, "filename": "jsonobject-0.9.2-cp27-cp27m-macosx_10_13_intel.whl", "has_sig": true, "md5_digest": "804ec074603ecb833bfdd82ec084747b", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 650199, "upload_time": "2018-07-31T13:24:12", "url": "https://files.pythonhosted.org/packages/8c/39/f8e393fd28ce0c5146abef0da6ef57fae84b0f7a2ac2be0ad994b035250e/jsonobject-0.9.2-cp27-cp27m-macosx_10_13_intel.whl" }, { "comment_text": "", "digests": { "md5": "ade39e8e5048f15ae1e11801a3ca6630", "sha256": "e2dae3f6ee5aa36e37e0c0c3c1740e51196a885e5cf1d9000be200a3340bf3b3" }, "downloads": -1, "filename": "jsonobject-0.9.2.tar.gz", "has_sig": true, "md5_digest": "ade39e8e5048f15ae1e11801a3ca6630", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371088, "upload_time": "2018-07-31T13:24:15", "url": "https://files.pythonhosted.org/packages/5a/cc/ad69cdbddd69b2f2c0f8e124ca3f1341590d875872d3314a6f9868a67c8f/jsonobject-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "97ac98152e057aa878a047526396505f", "sha256": "0ebcdc9a92859b332fdc8db73f8e90057bf9ce24f7134db6824b9692956c4b09" }, "downloads": -1, "filename": "jsonobject-0.9.3-cp27-cp27m-macosx_10_13_intel.whl", "has_sig": true, "md5_digest": "97ac98152e057aa878a047526396505f", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 650200, "upload_time": "2018-07-31T19:23:39", "url": "https://files.pythonhosted.org/packages/30/d4/28ba7ecb917c87a711b195445972084b9457d767f593ecd5648a8d9c752a/jsonobject-0.9.3-cp27-cp27m-macosx_10_13_intel.whl" }, { "comment_text": "", "digests": { "md5": "658148a08651a4449bca979e1398b128", "sha256": "6512b649e7795b106ffa21275e50fe78470ddf798c4741543c31824ab9b4fc9f" }, "downloads": -1, "filename": "jsonobject-0.9.3.tar.gz", "has_sig": true, "md5_digest": "658148a08651a4449bca979e1398b128", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371032, "upload_time": "2018-07-31T19:23:42", "url": "https://files.pythonhosted.org/packages/6c/31/f950c6a0c4f52951de5153769d2e3275f724ee88ee1f9b72cb311471f751/jsonobject-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "a6307e3eb590803218165ce7c83266bd", "sha256": "c5fae6ae5561592ad5ea75bc3ea694c3ceec05d07481ef9b1e90ea1f803ba0e5" }, "downloads": -1, "filename": "jsonobject-0.9.4-cp27-cp27m-macosx_10_13_intel.whl", "has_sig": true, "md5_digest": "a6307e3eb590803218165ce7c83266bd", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 649511, "upload_time": "2018-09-10T22:12:17", "url": "https://files.pythonhosted.org/packages/15/95/729aa695b79dfe0be3c545c9fd986cd8b8fd722a9ae3cf09015e4f2f4074/jsonobject-0.9.4-cp27-cp27m-macosx_10_13_intel.whl" }, { "comment_text": "", "digests": { "md5": "b0703db319283b6a28fbfd27c2a1f277", "sha256": "7346c6728e5ab629d97bf6f3c19f22158c40e52d0e7da2ee7b39cbb8426d965c" }, "downloads": -1, "filename": "jsonobject-0.9.4.tar.gz", "has_sig": true, "md5_digest": "b0703db319283b6a28fbfd27c2a1f277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 371118, "upload_time": "2018-09-10T22:12:20", "url": "https://files.pythonhosted.org/packages/fa/14/16c90b1d4cd7135095d3ea4c3995881e22e48eb6b33904b6500b3de0aeb1/jsonobject-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "e9593ba6ccf7aea210fa083309b91787", "sha256": "f04a7b19ca8c1d98078b8edcdcfa2006d55a3028b06a2f1af9bc9f8cc70bde62" }, "downloads": -1, "filename": "jsonobject-0.9.5-cp27-cp27m-macosx_10_11_x86_64.whl", "has_sig": true, "md5_digest": "e9593ba6ccf7aea210fa083309b91787", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 378530, "upload_time": "2018-10-09T12:34:19", "url": "https://files.pythonhosted.org/packages/26/37/dc4ff2ea4f536c7db177d8ee906a2c1c4ff05a9358b5824b4147d871eb1c/jsonobject-0.9.5-cp27-cp27m-macosx_10_11_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "58c6e6dc307295b99ed2ecfa073fad26", "sha256": "ca213e67aeaffae222a2df694ddecbc42091bc9d303436f955e7add07c89926f" }, "downloads": -1, "filename": "jsonobject-0.9.5.tar.gz", "has_sig": true, "md5_digest": "58c6e6dc307295b99ed2ecfa073fad26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 372840, "upload_time": "2018-10-09T12:34:28", "url": "https://files.pythonhosted.org/packages/bb/bb/e73e70c0763b12dd9c7cbdc1b0ce68ee58a031e80d61c931470cb402dff0/jsonobject-0.9.5.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "f1da0c160bbc2c02a359a46387eabbcb", "sha256": "9ade0f0f22344ce20f5afabcb4e1e9592af1ed2d25ac2e0aad17ad05fc2a50f9" }, "downloads": -1, "filename": "jsonobject-0.9.8-cp27-cp27m-macosx_10_13_intel.whl", "has_sig": true, "md5_digest": "f1da0c160bbc2c02a359a46387eabbcb", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 649226, "upload_time": "2018-12-12T16:59:30", "url": "https://files.pythonhosted.org/packages/24/f0/cf04e54f0b084f4ed9af3257b528519d2fc5fb791bfa165179b6dec011ab/jsonobject-0.9.8-cp27-cp27m-macosx_10_13_intel.whl" }, { "comment_text": "", "digests": { "md5": "675da44138dbcb7de226980b49f0fdf1", "sha256": "8bfeaa105f82a9610fc28912837cecd9d7233321237d8d10b74a83ff5520fac0" }, "downloads": -1, "filename": "jsonobject-0.9.8.tar.gz", "has_sig": true, "md5_digest": "675da44138dbcb7de226980b49f0fdf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 375100, "upload_time": "2018-12-12T16:59:33", "url": "https://files.pythonhosted.org/packages/62/2b/ac51a4b1e4b5a765fd3841c5e70dd2ae7fd5eda51906ff170a02c7f75201/jsonobject-0.9.8.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "d90f6dbd0c1b55b02feebc325fa9907b", "sha256": "75971a1afc52219d5095da9923c42e3e9c2d11f5968d2fcc9e76459d7ede75cf" }, "downloads": -1, "filename": "jsonobject-0.9.9.tar.gz", "has_sig": false, "md5_digest": "d90f6dbd0c1b55b02feebc325fa9907b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 389172, "upload_time": "2019-05-14T14:04:50", "url": "https://files.pythonhosted.org/packages/13/5d/8cefef3ad423beb44a7b1a4f7572605dfae97ff340d4444381b1db131ae8/jsonobject-0.9.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d90f6dbd0c1b55b02feebc325fa9907b", "sha256": "75971a1afc52219d5095da9923c42e3e9c2d11f5968d2fcc9e76459d7ede75cf" }, "downloads": -1, "filename": "jsonobject-0.9.9.tar.gz", "has_sig": false, "md5_digest": "d90f6dbd0c1b55b02feebc325fa9907b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 389172, "upload_time": "2019-05-14T14:04:50", "url": "https://files.pythonhosted.org/packages/13/5d/8cefef3ad423beb44a7b1a4f7572605dfae97ff340d4444381b1db131ae8/jsonobject-0.9.9.tar.gz" } ] }