{ "info": { "author": "James Robert", "author_email": "jiaaro@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Utilities" ], "description": "## Installation ##\n\n 1. Install lib with pip:\n\n `pip install jsonate`\n\n **- OR -**\n\n Put the \"jsonate\" directory somewhere in your python path\n\n 2. Add \"jsonate\" to your `INSTALLED_APPS` (in the settings.py file)\n\n\n## Usage ##\n\n### In templates\n\n {% load jsonate_tags %}\n\n {{ anything|jsonate }}\n\nThis is especially useful for embedding data in in data attributes for\nuse with javascript libraries like jQuery (note jsonate-attr is identical to jsonate|escape):\n\n
\n\n \n\nOr just use it directly in javascript...\n\n \n\n### In Python\n\n```python\nfrom jsonate import jsonate\n\n# querysets\njson = jsonate(User.objects.all())\n\n# values \njson = jsonate(User.objects.values())\n\n# model instances\njson = jsonate(User.objects.get(email=\"my_email@gmail.com\"))\n```\n\nJsonate turns datetimes into iso format for easy parsing in javascript\n\n```python\n# formatted response for ease of reading...\n>>> print jsonate(User.objects.all()[0])\n{\n \"username\": \"asdfasdf\", \n \"first_name\": \"asdf\", \n \"last_name\": \"asdf\", \n \"is_active\": false, \n \"email\": \"asdf@example.com\", \n \"is_superuser\": false, \n \"is_staff\": false, \n \"last_login\": \"2011-08-22T19:14:50.603531\", \n \"id\": 5, \n \"date_joined\": \"2011-08-22T19:14:50.220049\"\n}\n```\n\n## Fields / Exclude -- Serialization options\n\nYou may specify which fields should be serialized in the meta options of\nyour models. This affects the serialization of model instances, and querysets,\njust like the Admin!\n\nExample\n\n```python \nfrom django.db import models\n\nclass MyModel(models.Model):\n normal_info = models.CharField(max_length=10)\n sensitive_info = models.CharField(max_length=10)\n\n class Meta:\n jsonate_exclude = ('sensitive_info',)\n # this would also work:\n # jsonate_fields = ('normal_info',)\n```\n\nBy default the User model in `django.contrib.auth.models` is monkey-patched\nto exclude the password field when serializing querysets or instances\n\nIf you want to specify which fields will be serialized on a per-case basis,\nuse `values()` instead. like so\n\n```python\n>>> jsonate(User.objects.values(\"username\", \"password\"))\n... '[{\"username\": \"someuser\", \"password\": \"sha1$f26b2$d03a6123487fce20aabcdef0987654321abcdef0\"}]'\n```\n\nnote: this is obviously not a real password or salt :)\n\nYou can also specify a `to_json()` method on your model to more tightly control serialization.\n\nWhen Jsonate serializes an object, the `to_json()` method will *always* be used\nif it is found. The method may return any object that Jsonate can serialize (be careful of infinite \nloops).\n\nExample:\n\n```python\nimport time\nfrom django.db import models\n\nclass MyModel(models.Model):\n normal_info = models.CharField(max_length=10)\n sensitive_info = models.CharField(max_length=10)\n\n def to_json(self):\n return {\"normal_info\": self.normal_info, \"serialized_at\": time.time()}\n\n\u2026\n\nfrom jsonate import jsonate\n\nmy_model = MyModel(\n normal_info=\"hi mom\", \n sensitive_info=\"My Social Security number is: ###-##-####\"\n)\n\njsonate(my_model)\n# {\"normal_info\": \"hi mom\", \"serialized_at\": 1345233658.29246}\n```\n\n## JsonateField\n\nJsonateField is a simple JSONField like the ever popular JSONField project.\nThe only difference is JsonateField uses the Jsonate JSON serializer, which\nmakes it more robust than other JSONField implementations.\n\nexample:\n\n```python\nfrom django.db import models\nfrom jsonate.fields import JsonateField\n\nclass Customer(models.Model):\n extra_data = JsonateField(blank=True, null=True)\n\n \u2026\n\ncustomer = Customer()\ncustomer.extra_data = {\n \"height\": 65,\n \"weight\": 115,\n}\ncustomer.save()\n```\n\nDon't ask me why you'd care about your customer's height and weight.\n\n## In Forms\n\nIf you want the Json input to be validated there is a validator:\n\n```python\nfrom django import forms\nfrom jsonate.form_fields import JsonateValidator\n\nclass MyForm(forms.Form):\n json_input = forms.CharField(validators=[JsonateValidator])\n```\n\n...but you should probably just use the JsonateFormField (which uses the \nvalidator):\n\n```python\nfrom django import forms\nfrom jsonate.form_fields import JsonateFormField\n\nclass MyForm(forms.Form):\n json_input = JsonateFormField()\n```\n\n## In the Admin\n\nIf you're using the JsonateField in any of your models you'll probably\nwant the input to be validated in the admin (using the JsonateFormField):\n\n```python\nfrom django.contrib import admin\nfrom myapp.models import MyModel\n\n# Add this to your imports:\nfrom jsonate.fields import JsonateField\nfrom jsonate.form_fields import JsonateFormField\n\n\nclass MyModelAdmin(admin.ModelAdmin):\n\n # Add this to your ModelAdmin:\n formfield_overrides = {\n JsonateField: {'form_class': JsonateFormField }\n }\n```\n\n## The JsonateResponse\n\n`JsonateResponse` is a subclass of HttpResponse that works almost exactly\nthe same, except that it accepts any object as it's data rather than just \nstrings. It returns the resulting json as mimetype \"application/json\"\n\nexample:\n\n```python\nfrom jsonate.http import JsonateResponse\n\ndef my_view(request):\n ...\n return JsonateResponse(request.user)\n\n# response contains:\n{\"username\": \"asdfasdf\", \"first_name\": \"asdf\", \"last_name\": \"asdf\", \"is_active\": false, \"email\": \"asdf@example.com\", \"is_superuser\": false, \"is_staff\": false, \"last_login\": \"2011-08-22T19:14:50.603531\", \"id\": 5, \"date_joined\": \"2011-08-22T19:14:50.220049\"}\n```\n\n\n## Decorator\n\nThe `JsonateResponse` is great, but life could get even easier! The \n`@jsonate_request` decorator (inspired by the ajax_request decorator\nin django-annoying) will try to serialize anything a view returns\n(via JsonateResponse) return it in an HttpResponse with mimetype\n\"application/json\"\n\nThe only thing it will *not* try to serialize is an HttpResponse.\n\nexample:\n\n```python\n@jsonate_request\ndef my_view(request):\n form = MyForm(request.POST)\n if form.is_valid():\n form.save()\n return HttpResponseRedirect(\"/some/path/\")\n else:\n return form.errors\n```\n\nWith valid input, the HttpResponseRedirect passes through, untouched.\n\nIf there are form errors the response comes back looking something like\nthis:\n\n```python\n{\n \"username\": [\n \"This username is already taken\"\n ], \n \"email\": [\n \"Please enter a valid email.\"\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": "http://jsonate.com", "keywords": "django json templatetags", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "jsonate", "package_url": "https://pypi.org/project/jsonate/", "platform": "", "project_url": "https://pypi.org/project/jsonate/", "project_urls": { "Homepage": "http://jsonate.com" }, "release_url": "https://pypi.org/project/jsonate/0.5.1/", "requires_dist": [ "django (>=1.7)", "future (>=0.16.0)" ], "requires_python": "", "summary": "Django library that can make ANYTHING into json", "version": "0.5.1" }, "last_serial": 4486878, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f0bc51baef9de67851998b4172efdf7b", "sha256": "192f0ccc86b97c22144e90b0add555aaa4c74b1a6ba510ab8be6f7e2492178a7" }, "downloads": -1, "filename": "jsonate-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f0bc51baef9de67851998b4172efdf7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3972, "upload_time": "2011-08-25T22:40:57", "url": "https://files.pythonhosted.org/packages/b9/f5/2692bc03f4771b47fc6934d48c94d6a93817eb2e039dc0816780990ee143/jsonate-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "56520ae82c617caf75c4917469950998", "sha256": "306accf92ecdfa7da239d2a76cc3fd6e069d4b191abc47c23c553afdd05380f8" }, "downloads": -1, "filename": "jsonate-0.1.1.tar.gz", "has_sig": false, "md5_digest": "56520ae82c617caf75c4917469950998", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3978, "upload_time": "2011-08-25T23:07:33", "url": "https://files.pythonhosted.org/packages/31/c0/85a4c280773046cf41ef48ffaea16c323e987c172b40d5852f1824e2b563/jsonate-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6ee5f11b5277c50bff556490ce2a7296", "sha256": "6e793dcd25ad9ceff2df4e3b7e803783aefe60d13054b9e9bb52cdb12b64c59f" }, "downloads": -1, "filename": "jsonate-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6ee5f11b5277c50bff556490ce2a7296", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5223, "upload_time": "2011-08-26T00:20:03", "url": "https://files.pythonhosted.org/packages/c9/17/c299ff0a0e77edf03e33d01281798872012fc8af3f8609327715dcdbfaa7/jsonate-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "9bf6499df2614178745d3dc93ac4c1a0", "sha256": "dfc3a1a7255bebf85173e76ff825d136d938ad8be4355c8b52e39d10c1fd4409" }, "downloads": -1, "filename": "jsonate-0.1.3.tar.gz", "has_sig": false, "md5_digest": "9bf6499df2614178745d3dc93ac4c1a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5231, "upload_time": "2011-08-29T20:20:15", "url": "https://files.pythonhosted.org/packages/78/5e/8c68a101b604401d00e1b765c316c49105b6a38e21a46bd55e4a0a83fd6d/jsonate-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e49c468a8af81225f55b502ab9b58f6a", "sha256": "7a0895d8634439970b7175399bee55c757dc2ed469337e4699f8e32abf5b5888" }, "downloads": -1, "filename": "jsonate-0.1.4.tar.gz", "has_sig": false, "md5_digest": "e49c468a8af81225f55b502ab9b58f6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5422, "upload_time": "2011-09-21T20:04:34", "url": "https://files.pythonhosted.org/packages/d9/cb/f3600938bc46a9c6f591238fb1f39a0e7d64d877197415ee81a4291445a9/jsonate-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b05662fab40e1387445aad45847633c4", "sha256": "2f8b2f78d72d9f64e5aac3e0aba9a2c4d79e83d845cee9ea2a334f02ca9b4d43" }, "downloads": -1, "filename": "jsonate-0.1.5.tar.gz", "has_sig": false, "md5_digest": "b05662fab40e1387445aad45847633c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5512, "upload_time": "2011-09-30T18:54:48", "url": "https://files.pythonhosted.org/packages/39/da/3e928d4fafa977f0639764dbac45c26faf068608b71ce5293f447550d48a/jsonate-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "39d0910e5e709d54d37cdf34526ee5ec", "sha256": "e2766f9dad4033cce4205f513c1eddc7c90af02426079ddd43a1c5f68ab91728" }, "downloads": -1, "filename": "jsonate-0.1.6.tar.gz", "has_sig": false, "md5_digest": "39d0910e5e709d54d37cdf34526ee5ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5535, "upload_time": "2011-10-21T17:44:52", "url": "https://files.pythonhosted.org/packages/d4/d5/181ce5e8527b421edf7db20ca8854c1811dd28751dab8937d2741d500607/jsonate-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "2cbcc5283f0bf065a5b982a665522d04", "sha256": "7e9c9d630daed3a6e2ef97b53c020e1402dad343e63f8cbf1772cf7034747db8" }, "downloads": -1, "filename": "jsonate-0.1.7.tar.gz", "has_sig": false, "md5_digest": "2cbcc5283f0bf065a5b982a665522d04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5517, "upload_time": "2011-12-23T18:46:23", "url": "https://files.pythonhosted.org/packages/ee/b2/924265cd7d3ce065ab913470ab03ce55ef5654148ecd3febde48732fab12/jsonate-0.1.7.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b2e97666a315ef0feb47c137d7dead9d", "sha256": "7ffb46de6a1b6ad6891f49b06552a2b5ea46601e01425dd7da0daedbb8e2cf8d" }, "downloads": -1, "filename": "jsonate-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b2e97666a315ef0feb47c137d7dead9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6011, "upload_time": "2012-08-17T19:50:37", "url": "https://files.pythonhosted.org/packages/bf/e8/35b45a6f6c34775e104b9083100902fb112a9c5091f2021b94c4fbd38c56/jsonate-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "dbd51527154f50e1c858523e281cb215", "sha256": "31f7b52806c28399c46730b52bebb3b1d9e11f426685be35d55801207436484d" }, "downloads": -1, "filename": "jsonate-0.2.1.tar.gz", "has_sig": false, "md5_digest": "dbd51527154f50e1c858523e281cb215", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6368, "upload_time": "2012-08-17T20:02:08", "url": "https://files.pythonhosted.org/packages/d3/16/37ec3f2f2c3fc27f8566af398e95355c95558f8dbadcb2bd1be7e51a3fb9/jsonate-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "38ca96d273a0a134850ced1dfe08e435", "sha256": "8d5afad67c9f14809f290a66573caaeeaf0c0ee39e99dd3c374e21f7d7626334" }, "downloads": -1, "filename": "jsonate-0.2.2.tar.gz", "has_sig": false, "md5_digest": "38ca96d273a0a134850ced1dfe08e435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6441, "upload_time": "2012-08-17T21:12:59", "url": "https://files.pythonhosted.org/packages/97/15/7909671292b7506a9cf3d2933836e65790b4c46595b80609786a19b5606a/jsonate-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "32030bfe17b478d957d2b9516599bdd6", "sha256": "086e3e23c6db277465eadcdda08499a3e9813325873ed0f6718bb7ba65e8799e" }, "downloads": -1, "filename": "jsonate-0.2.3.tar.gz", "has_sig": false, "md5_digest": "32030bfe17b478d957d2b9516599bdd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6451, "upload_time": "2012-08-18T19:36:26", "url": "https://files.pythonhosted.org/packages/bb/67/9b4e3d17a99ec9b2fa93da543b3fa20134a9127db107873fe942d61d5954/jsonate-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "f4860ecebe325b2ab822738cfe7ede84", "sha256": "13613798ca8717d83401c0a40d2399453e9c633044c00e3847be8c58f17e4b02" }, "downloads": -1, "filename": "jsonate-0.2.4.tar.gz", "has_sig": false, "md5_digest": "f4860ecebe325b2ab822738cfe7ede84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6521, "upload_time": "2012-11-26T18:56:53", "url": "https://files.pythonhosted.org/packages/c7/75/b9919c6013c48a672d9f344c1546f60c1bb919551ef6d61e1613d6f46c14/jsonate-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "ba02562b34f41103ce2659f8520f93a6", "sha256": "7cef97a2c741f889d9f1588b443fc24e74c5985e2d7efcba8b255d4065304dd8" }, "downloads": -1, "filename": "jsonate-0.2.5.tar.gz", "has_sig": false, "md5_digest": "ba02562b34f41103ce2659f8520f93a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6741, "upload_time": "2013-05-06T21:10:35", "url": "https://files.pythonhosted.org/packages/31/8c/b007fb290f1a560ff88c4840166310de9a3414a239d23946828b2b1909ac/jsonate-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3bee5749e8c6a93efff3c5b065468361", "sha256": "e15120f416c1ac9cdbb22777c1307068deb38ace877a00d812f9a8577df903e1" }, "downloads": -1, "filename": "jsonate-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3bee5749e8c6a93efff3c5b065468361", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6731, "upload_time": "2013-05-07T01:05:30", "url": "https://files.pythonhosted.org/packages/36/0a/f3bb5c0d8594d22c8f2a1c81333758cc7599537cf0450fe3f4325a860c37/jsonate-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "7a3c4cd2cccdac0454acf9de173e5fcc", "sha256": "f4940eba082d7e0ddd49143995c9710ccddf022a05b371420c7eed59beb6a5dd" }, "downloads": -1, "filename": "jsonate-0.3.1.tar.gz", "has_sig": false, "md5_digest": "7a3c4cd2cccdac0454acf9de173e5fcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6909, "upload_time": "2013-05-07T15:32:36", "url": "https://files.pythonhosted.org/packages/bb/d1/4fa6b2ae5c9a0f82324e8663911eae5868f0def233093c8338ee11c38579/jsonate-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "0dcdbc800bc2f9f6fde3e428741454ca", "sha256": "78533d08331e580e7da18d06b1b09dc02f8fdc617fcf750b55add5a5e6207b49" }, "downloads": -1, "filename": "jsonate-0.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "0dcdbc800bc2f9f6fde3e428741454ca", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12837, "upload_time": "2014-09-23T17:00:17", "url": "https://files.pythonhosted.org/packages/c5/5b/e182f7864439c50ab17128b4de0d1839260a44e084f524b81e6c99308dda/jsonate-0.3.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d4278730cdc22fdaff9f9a9147d51c6", "sha256": "dbe270fb80683c3358e61cf99273d979d65a945545b4becaac88ada6805db087" }, "downloads": -1, "filename": "jsonate-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8d4278730cdc22fdaff9f9a9147d51c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7234, "upload_time": "2014-09-23T16:59:46", "url": "https://files.pythonhosted.org/packages/75/c8/8bc7519dcf3cc4b3a9491f7a519bf5bb0aa8c77fd43dd7b362fe0e678d64/jsonate-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "8919e80bfe41f3e710abda11a4a00826", "sha256": "d46d0c4fa3f81778321be026039aca54d0cf5d2a5533ee2aa6cac8f40b55e483" }, "downloads": -1, "filename": "jsonate-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8919e80bfe41f3e710abda11a4a00826", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13385, "upload_time": "2015-12-30T18:45:23", "url": "https://files.pythonhosted.org/packages/40/86/f10c13167b2ddab1f88458ad7fc9bc568318b2ad3ce4ccf42f5ddeaf2e26/jsonate-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4aa60f6acf93a699bd989685ed609330", "sha256": "12925cc28916055a63e5424158c8c25c4b0ee83b5e9fd235cd5c7a1890812c73" }, "downloads": -1, "filename": "jsonate-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4aa60f6acf93a699bd989685ed609330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7404, "upload_time": "2015-12-30T18:44:57", "url": "https://files.pythonhosted.org/packages/d4/51/64422d022f6c5fb04314b03ddb035d08524b30bab0cf27c92296a874ab96/jsonate-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "6a6a3d375c5ee7878221d299591c9ecf", "sha256": "a5fce0e53f4a4d4ce5c62edb502ba50c6d66e2a73b57f6a125390434bc28b293" }, "downloads": -1, "filename": "jsonate-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6a6a3d375c5ee7878221d299591c9ecf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7445, "upload_time": "2018-11-14T20:23:21", "url": "https://files.pythonhosted.org/packages/11/46/4fe492bfc7271444b48b4e39116a15baa478b4246067064e9b29782352d3/jsonate-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "d6cd99342daafc69ae9436cafec0db0d", "sha256": "8e30830f424ffdbf20f901dbc9961ec57ad4738e4bc9c545a91e022a57be1e50" }, "downloads": -1, "filename": "jsonate-0.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d6cd99342daafc69ae9436cafec0db0d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10098, "upload_time": "2018-11-14T20:23:20", "url": "https://files.pythonhosted.org/packages/9b/25/04d67aa83a81fa9d5844a96103673220ff889073cc241ea50ff356efa98c/jsonate-0.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1ba97694931ca2f7f5403695956b43a", "sha256": "06657ea2642cb392d7ec245a355543fd0757853c774f6a38f2aea279ae9a35dd" }, "downloads": -1, "filename": "jsonate-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f1ba97694931ca2f7f5403695956b43a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7493, "upload_time": "2018-11-14T20:23:22", "url": "https://files.pythonhosted.org/packages/d4/63/94c1f5682a1bcf40e0cbb51819ae932f7ec1375808cab600dc898ab7ab21/jsonate-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d6cd99342daafc69ae9436cafec0db0d", "sha256": "8e30830f424ffdbf20f901dbc9961ec57ad4738e4bc9c545a91e022a57be1e50" }, "downloads": -1, "filename": "jsonate-0.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d6cd99342daafc69ae9436cafec0db0d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10098, "upload_time": "2018-11-14T20:23:20", "url": "https://files.pythonhosted.org/packages/9b/25/04d67aa83a81fa9d5844a96103673220ff889073cc241ea50ff356efa98c/jsonate-0.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1ba97694931ca2f7f5403695956b43a", "sha256": "06657ea2642cb392d7ec245a355543fd0757853c774f6a38f2aea279ae9a35dd" }, "downloads": -1, "filename": "jsonate-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f1ba97694931ca2f7f5403695956b43a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7493, "upload_time": "2018-11-14T20:23:22", "url": "https://files.pythonhosted.org/packages/d4/63/94c1f5682a1bcf40e0cbb51819ae932f7ec1375808cab600dc898ab7ab21/jsonate-0.5.1.tar.gz" } ] }