{ "info": { "author": "Jay Young(yjmade)", "author_email": "dev@yjmade.net", "bugtrack_url": null, "classifiers": [], "description": "# django-pgjsonb\nDjango Postgres JSONB Fields support with lookups\n\nOriginaly inspired by [django-postgres](https://bitbucket.org/schinckel/django-postgres/)\n\n\nChange Logs\n===========\n2017-09-13: 0.0.29\n Fix JsonAdapter Python2 incompatible\n \n2017-09-11: 0.0.28\n Fix contained_by contains empty {}\n Fix error of has_any/ has_all\n Fix lookup ```filter(meta={})```\n\n2017-08-31: 0.0.27\n Fix as_{} lookup for python3\n\n2017-08-31: 0.0.26\n Fix has lookup after Django 1.10\n\n2017-05-18\uff1a0.0.25\n Supress exception when drop index and the index already removed.\n\n2017-03-14: 0.0.24\n Add support for __near lookup with postgres earthdistance plugin, Thanks to @steinliber\n \n2016-06-01: 0.0.23\n\tFix value from select_json not been decode from json introduce by 0.0.18\n\n2016-03-24: 0.0.22\n\tFix error #11 remove the unexpect decode float to Decimal\n\n2016-03-19: 0.0.21\n\tFix error #10\n\n2016-03-09: 0.0.20\n\tAdd the array length for select_json\n\n2016-03-08: 0.0.19\n\tfix when add a json field with db_index=True and it's fail to generate the create index sql\n\n2016-03-01: 0.0.18\n\twe want to be able to use customize decoder to load json, so get avoid the psycopg2's decode json, just return raw text then we deserilize by the field from_db_value\n\n2016-03-01: 0.0.17\n\tpatch the django serilizer to not return the stringifyed result\n\n2015-07-23: 0.0.16\n\tAdd support for ./manage.py inspectdb\n\n2015-06-10: 0.0.15\n Add support for db_index to add GIN index\n\nInstall\n=======\n\n`pip install django-pgjsonb`\n\n\nDefinition\n===\n\n```python\nfrom django_pgjsonb import JSONField\n\nclass Article(models.Model):\n\tmeta=JSONField([null=True,default={},decode_kwargs={},encode_kwargs={},db_index=False,db_index_options={}])\n```\n\n\nEncoder and Decoder Options\n===\nby define decode_kwargs and encode_kwargs you can use your customize json dump and load behaveior, basicly these parameters will just pass to json.loads(**decode_kwargs) and json.dumps(**encode_kwargs)\n\nhere is an example for use [EJSON](https://pypi.python.org/pypi/ejson) to store native datetime object\n\n```python\nimport ejson\n\nclass Article(models.Model):\n\tmeta=JSONField(encode_kwargs={\"cls\":ejson.EJSONEncoder},decode_kwargs={\"cls\":ejson.EJSONDecoder})\n```\n\n\nAdd Index\n=====\n[new add in 0.0.15]\n\njsonb field support gin type index to accelerator filtering. Since JSON is a data structure contains hierarchy, so the index of jsonb field will be more complicate than another single value field. More information, please reference [Postgres document 8.14.4](http://www.postgresql.org/docs/9.4/static/datatype-json.html)\n\n```python\nmeta=JSONField(db_index=True)\nor\nmeta=JSONField(db_index=True,db_index_options={\"path\":\"authors__name\",\"only_contains\":True})\nor\nmeta=JSONField(db_index=True,db_index_options=[{},{\"path\":\"authors__name\",\"only_contains\":True}])\n```\n\nWhen set db_index as True and do not set db_index_options, it will generate default GIN index, most case it's enough.\n\nWhen specify ```db_index_options={\"only_contains\":True}```, the index will be as the non-default GIN operator class jsonb_path_ops that supports indexing the ```contains``` operator only, but it's consume less space and more efficient.\n\nWhen specify the path parameter in db_index_options, ```db_index_options={\"path\":\"authors__name\"}```, then index will generate to the specify path, so that ```Article.objects.filter(meta__authors__name__contains=[\"asd\"])``` can utilize the index.\n\nSo you can create multiple index in one JSONField, just pass the db_index_options parameter as a list that contains multiple options, it will generate multiple correspond indexes. Empty dict stand for the default GIN index.\n\n\nLookups\n=======\n###Contains a wide range of lookups supported natively by postgres\n\n1. `has` :if field has specific key *`(\"?\")`*\n\n ```python\n Article.objects.filter(meta__has=\"author\")\n ```\n\n2. `has_any` : if field has any of the specific keys *`(\"?|\")`*\n\n ```python\n Article.objects.filter(meta__has_any=[\"author\",\"date\"])\n ```\n3. `has_all` : if field has all of the specific keys *`(\"?&\")`*\n\n ```python\n Article.objects.filter(meta__has_all=[\"author\",\"date\"])\n ```\n4. `contains` : if field contains the specific keys and values *`(\"@>\")`*\n ```python\n Article.objects.filter(meta__contains={\"author\":\"yjmade\",\"date\":\"2014-12-13\"})\n ```\n\n5. `in` or `contained_by` : if all field key and value contain by input *`(\"<@\")`*\n ```python\n Article.objects.filter(meta__in={\"author\":\"yjmade\",\"date\":\"2014-12-13\"})\n ```\n\n6. `len` : the length of the array, transform to int, and can followed int lookup like gt or lt *`(\"jsonb_array_length()\")`*\n\n ```python\n Article.objects.filter(meta__authors__len__gte=3)\n Article.objects.filter(meta__authors__len=10)\n ```\n7. `as_(text,int,float,bool,date,datetime)` : transform json field into specific data type so that you can follow operation of this type *`(\"CAST(FIELD as TYPE)\")`*\n\n ```python\n Article.objects.filter(meta__date__as_datetime__year__range=(2012,2015))\n Article.objects.filter(meta__view_count__as_float__gt=100)\n Article.objects.filter(meta__title__as_text__iregex=r\"^\\d{4}\")\n ```\n8. `path_(PATH)` : get the specific path, path split by '_' *`(\"#>\")`*\n\n ```python\n Article.objects.filter(meta__path_author_articles__contains=\"show me the money\")\n ```\n\n\nExtend function to QuerySet\n========================\n1.`select_json(\"JSON_PATHS\",field_name=\"JSON_PATHS\")`\n\nJSON_PATHS in the format of paths separated by \"__\",like \"meta__location__geo_info\". It will use the queryset's `extra` method to transform a value inside json as a field.\nIf no field_name provided, it will generate a field name with lookups separate by _ without the json field self's name, so `select_json(\"meta__author__name\")` is equal to `select_json(author_name=\"meta__author__name\")`\n\n```python\nArticle.objects.select_json(\"meta__author__name\",geo=\"meta__location__geo_info\")`\n```\n\n This operation will translate to sql as\n\n ```sql\n SELECT \"article\".\"meta\"->'location'->'geo_info' as \"geo\", \"article\".\"meta\"->'author'->'name' as \"author_name\"\n ```\n\n[new add in 0.0.20]\nYou can also select the length of a json array as a field by use Length object\n\n```python\nfrom django_pgjsonb.fields import Length\nArticle.objects.select_json(authors_len=Length(\"meta__authors\")).values(\"authors_len\")\n```\n\n After select_json, the field_name can be operate in values() and values_list() method, so that\n\n 1. select only one specific value inside json\n 2. to group by one value inside json\n\nis possible.\n\nDemo:\n\n```python\nArticle.objects.all().select_json(tags=\"meta__tags\").values_list(\"tags\")\n# select only \"meta\"->'tags'\n\nArticle.objects.all().select_json(author_name=\"meta__author__name\")\\\n\t.values(\"author_name\").annotate(count=models.Count(\"author_name\"))\n# GROUP BY \"meta\"->'author'->'name'\n```\n\n\n\n\nsupport geo search in jsonb\n===========================\n\n**require**: postgresql plugin: \n\n1. cube\n\n2. earthdistance\n\n3. to install these two plugin, run command below in psql\n\n ```\n CREATE EXTENSION cube; \n CREATE EXTENSION earthdistance; \n ```\n\nhow to save location json record\n\n```Json\n{\"location\": [30.2, 199.4]} # just keep a latitude, longitude list\n```\n\nDemo\n\n```python\nArticle.objects.filter(data__location__near=[39.9, 116.4,5000]) # latitude\uff0clongitude\uff0csearch range\n```\n\nor \n\n```python\nArticle.objects.filter(data__location__near='39.9,116.4,5000') # latitude\uff0clongitude, search range\n```\n\n**Alert**: if you don't pass exact number of params, this filter will not be used\n\n**for more earthdistance**, see [Postgresql Earthdistance Documentation](https://www.postgresql.org/docs/8.3/static/earthdistance.html)\n\n------------------------------------------------------------------------------------------------------------------\n\n\n#####For more information about raw jsonb operation, please see [PostgreSQL Documentation](http://www.postgresql.org/docs/9.4/static/functions-json.html)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yjmade/django-pgjsonb", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-pgjsonb", "package_url": "https://pypi.org/project/django-pgjsonb/", "platform": "", "project_url": "https://pypi.org/project/django-pgjsonb/", "project_urls": { "Homepage": "https://github.com/yjmade/django-pgjsonb" }, "release_url": "https://pypi.org/project/django-pgjsonb/0.0.32/", "requires_dist": null, "requires_python": "", "summary": "Django Postgres JSONB Fields support with lookups", "version": "0.0.32" }, "last_serial": 3747922, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "dad9eaef9dd142dfb0f817b2d86beaf7", "sha256": "89e9d92d372de6b0da319dc8e2586258c794bbb762a4d4ad84ba1a911934483f" }, "downloads": -1, "filename": "django-pgjsonb-0.0.10.tar.gz", "has_sig": false, "md5_digest": "dad9eaef9dd142dfb0f817b2d86beaf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5264, "upload_time": "2015-01-28T06:49:11", "url": "https://files.pythonhosted.org/packages/ea/6a/f0b1819e56704bb43c1fc121f22a23da76e313cf2d2919656e38f898ef24/django-pgjsonb-0.0.10.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "fb8ce29f791892315cbaec8e3a57ef21", "sha256": "ea6192bdac1702ec8d5894ede67d6b2ed8307b72fae641844d6889e5f2ccb7bc" }, "downloads": -1, "filename": "django-pgjsonb-0.0.12.tar.gz", "has_sig": false, "md5_digest": "fb8ce29f791892315cbaec8e3a57ef21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5392, "upload_time": "2015-06-16T11:58:41", "url": "https://files.pythonhosted.org/packages/04/0a/ed671a070f329b3e96fbe8518f060ea67e02936410bfb6c01e891332725d/django-pgjsonb-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "02ae2b896b87f940a9a8e4c5498e55bf", "sha256": "3e0914592b98d8210ab42e9adbf88a7d9753fdee1749eed320e9fb110d80ad19" }, "downloads": -1, "filename": "django-pgjsonb-0.0.13.tar.gz", "has_sig": false, "md5_digest": "02ae2b896b87f940a9a8e4c5498e55bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5358, "upload_time": "2015-06-16T12:06:44", "url": "https://files.pythonhosted.org/packages/8e/1f/d1dd83db9de9ec1abb66144478aa986f94858e28e378f9b67519c68e7135/django-pgjsonb-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "37f806c51345fcaddda7cf7602e8c609", "sha256": "babd8d80722e4b8e786567ffcc8db76cc904f941891268f2d41f0c11fc6f4754" }, "downloads": -1, "filename": "django-pgjsonb-0.0.14.tar.gz", "has_sig": false, "md5_digest": "37f806c51345fcaddda7cf7602e8c609", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5333, "upload_time": "2015-06-16T12:17:45", "url": "https://files.pythonhosted.org/packages/5c/bf/b8912c924d70d46f7f7aa7eb9d118dba0a6ee124a65baf581d6e0e2c1d4d/django-pgjsonb-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "852318219eeaaa0db6bbee17261ebc5f", "sha256": "ee66d15b2689a6add408337235e97c809329ceaba6f494360f3063a4b109a84c" }, "downloads": -1, "filename": "django-pgjsonb-0.0.15.tar.gz", "has_sig": false, "md5_digest": "852318219eeaaa0db6bbee17261ebc5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6898, "upload_time": "2015-06-17T09:19:55", "url": "https://files.pythonhosted.org/packages/93/2f/ade2b96e8251cf3cb59e72de50b1b74eae243d9ad2f5900463ad9d16548b/django-pgjsonb-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "71d2a2ed9ee320adbcd12c387f060df3", "sha256": "6a56ed2c1c702b2d296ec93ddb4a251d33494d1bae0b7864fa8fb1efe1da2aee" }, "downloads": -1, "filename": "django-pgjsonb-0.0.16.tar.gz", "has_sig": false, "md5_digest": "71d2a2ed9ee320adbcd12c387f060df3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7004, "upload_time": "2015-07-23T10:59:46", "url": "https://files.pythonhosted.org/packages/0c/e4/15a30c9f3920a7c76715be2bc63b243323cd921e16ebbc872bbb3ffead62/django-pgjsonb-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "e245df78a39783548fc505574ea7e4f2", "sha256": "48bfad970a4ba956e9e080cea78b066f20e6bd81390cb1c1cdb69676667b15e9" }, "downloads": -1, "filename": "django-pgjsonb-0.0.17.tar.gz", "has_sig": false, "md5_digest": "e245df78a39783548fc505574ea7e4f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7167, "upload_time": "2016-03-01T11:02:19", "url": "https://files.pythonhosted.org/packages/1e/eb/07dcfcc1b0801b2ecb370d5bf461c9d1a9c11f53a47d25e5d821986ae775/django-pgjsonb-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "0fc5f55cd4e7a5b814ba89198887ba91", "sha256": "9a0c362651a5c46d632e22a6c28ee08807e8aae5adbeca4570268c38894d0811" }, "downloads": -1, "filename": "django-pgjsonb-0.0.18.tar.gz", "has_sig": false, "md5_digest": "0fc5f55cd4e7a5b814ba89198887ba91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7156, "upload_time": "2016-03-03T09:55:14", "url": "https://files.pythonhosted.org/packages/00/c4/c13824c6e0dcf5152d573715f548c738a6111899848cfe658e3f00ff7315/django-pgjsonb-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "546483b65830fbb9bfd32c9660ef03a7", "sha256": "8c5ff964bd68bb9f078330ca7dfaaefde0dcda0cfc71fe9867d9d505ec8131a5" }, "downloads": -1, "filename": "django-pgjsonb-0.0.19.tar.gz", "has_sig": false, "md5_digest": "546483b65830fbb9bfd32c9660ef03a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7287, "upload_time": "2016-03-08T06:39:52", "url": "https://files.pythonhosted.org/packages/a9/38/610c2030eacd91af0295bf743c98b921ed1622138a1bc39541fa6c380336/django-pgjsonb-0.0.19.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "a463fb3f889314d402c2ed2d61fd6805", "sha256": "de1d46df85bd20daf24c4cf211ac7b5b7106a6555f582e354835cf6c89cb1424" }, "downloads": -1, "filename": "django-pgjsonb-0.0.20.tar.gz", "has_sig": false, "md5_digest": "a463fb3f889314d402c2ed2d61fd6805", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7461, "upload_time": "2016-03-09T04:52:41", "url": "https://files.pythonhosted.org/packages/2a/56/48030fe4a9922f8a631fd9795ba368d8fcfbeeb3080c5499a548a368f7f6/django-pgjsonb-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "64183bf060aea63d384bf5519fd691d6", "sha256": "1e606a4dbcdfb6762ff6c90c67f95d936043cea1b46727965e7913cb991283e5" }, "downloads": -1, "filename": "django-pgjsonb-0.0.21.tar.gz", "has_sig": false, "md5_digest": "64183bf060aea63d384bf5519fd691d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7492, "upload_time": "2016-03-19T05:33:06", "url": "https://files.pythonhosted.org/packages/dd/f7/071d1b17a2231da0bfd23faba055a12ad7dc2d4052b51353198e10167b78/django-pgjsonb-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "78752fc7effb16bd24ee8f67a07f015c", "sha256": "75932794a97f45afa6b06d35de6c4403fb95c6108c13d433074a6e3cd09848fb" }, "downloads": -1, "filename": "django-pgjsonb-0.0.22.tar.gz", "has_sig": false, "md5_digest": "78752fc7effb16bd24ee8f67a07f015c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7761, "upload_time": "2016-03-24T06:09:13", "url": "https://files.pythonhosted.org/packages/91/8b/37a7422a5ccca21f968158f98bc7bdd7858f6a89243ec09bf99e2e09a22f/django-pgjsonb-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "c3171573d22360d97436dae5ed7d35b2", "sha256": "77ff0fe376c2e6ac220517a96e95d63c48805c507df5ab62d9303ba5557cfd4b" }, "downloads": -1, "filename": "django-pgjsonb-0.0.23.tar.gz", "has_sig": false, "md5_digest": "c3171573d22360d97436dae5ed7d35b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7895, "upload_time": "2016-06-01T09:13:52", "url": "https://files.pythonhosted.org/packages/f6/9d/3a2aa3fa5ea35f87ec3fff3f174f8332b3b07db748e8c955cdf7cb5e4eb6/django-pgjsonb-0.0.23.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "b47284682d7c9b391fa1c4b076c45468", "sha256": "40e1d1f047b720187e514a3b8407bf2722821923bc96aadd815c1c38de028767" }, "downloads": -1, "filename": "django-pgjsonb-0.0.24.tar.gz", "has_sig": false, "md5_digest": "b47284682d7c9b391fa1c4b076c45468", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8851, "upload_time": "2017-03-14T01:59:32", "url": "https://files.pythonhosted.org/packages/d5/5a/f9f1240748af1bd31bfb1f5c84b21832ab2a17a06a44b6a79c1cc4921be2/django-pgjsonb-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "54c8ccd94b64bfda081912ca132013fe", "sha256": "431296b0d207b810908a8e78fa3edfcd8dd8fde71fd94e324f0964e19c090b49" }, "downloads": -1, "filename": "django-pgjsonb-0.0.25.tar.gz", "has_sig": false, "md5_digest": "54c8ccd94b64bfda081912ca132013fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8962, "upload_time": "2017-05-18T05:38:46", "url": "https://files.pythonhosted.org/packages/0a/23/454f3bf51c1ed9fa7fcac7b2515932d5fce5a16879c7e4f68bc43e1b3237/django-pgjsonb-0.0.25.tar.gz" } ], "0.0.26": [ { "comment_text": "", "digests": { "md5": "895765ec8b22653759d6d74a501c9db1", "sha256": "d23b3d8bb885b151644908d73cbdc06f926413f9edde06bb7d8f5b073dd2d047" }, "downloads": -1, "filename": "django-pgjsonb-0.0.26.tar.gz", "has_sig": false, "md5_digest": "895765ec8b22653759d6d74a501c9db1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9015, "upload_time": "2017-08-31T09:37:40", "url": "https://files.pythonhosted.org/packages/96/4b/afa8e551255476f068a4a4ef8c33e02290e3e40b45103fb930c6192a6938/django-pgjsonb-0.0.26.tar.gz" } ], "0.0.27": [ { "comment_text": "", "digests": { "md5": "fca8bf8172cc5a79d094570dee53924c", "sha256": "c1ae493ece084270c98ec417283f58261b15e3e1dbdf5170fb8b801a9d036335" }, "downloads": -1, "filename": "django-pgjsonb-0.0.27.tar.gz", "has_sig": false, "md5_digest": "fca8bf8172cc5a79d094570dee53924c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9039, "upload_time": "2017-08-31T11:12:50", "url": "https://files.pythonhosted.org/packages/6b/f9/265abc683cd8e1c34007c5588175a78600eed0549c3d9756ca82c93d1b03/django-pgjsonb-0.0.27.tar.gz" } ], "0.0.28": [ { "comment_text": "", "digests": { "md5": "d683bcc47991d80e012623f387ea9f26", "sha256": "1f66f485034b7607deb6f6a8619ba09ba1e409a6981a6f749eaf134163381a8f" }, "downloads": -1, "filename": "django-pgjsonb-0.0.28.tar.gz", "has_sig": false, "md5_digest": "d683bcc47991d80e012623f387ea9f26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9232, "upload_time": "2017-09-11T07:42:12", "url": "https://files.pythonhosted.org/packages/54/71/b7896b192600137bea905326d2487d8c9f0da82c6b8dff4d8799fa047f9e/django-pgjsonb-0.0.28.tar.gz" } ], "0.0.29": [ { "comment_text": "", "digests": { "md5": "a9a3beb16862d50df2273e4838dd15b8", "sha256": "b18aaa24dbf6aa0d5f02e197c9d0095fbe0f3e17311a7a00b9aee76796758459" }, "downloads": -1, "filename": "django-pgjsonb-0.0.29.tar.gz", "has_sig": false, "md5_digest": "a9a3beb16862d50df2273e4838dd15b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9269, "upload_time": "2017-09-14T10:42:27", "url": "https://files.pythonhosted.org/packages/eb/f0/76df3c1b87e3abed9d2c0d531e6654f5e0c4049e4294219d5e7d2baf293f/django-pgjsonb-0.0.29.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "0ed0a122b00744f941811e9f75b0db62", "sha256": "05bf45eac34bf146d4ae1067a651d9ce8ba6102258db2fd6d55e8bbb5d5d8908" }, "downloads": -1, "filename": "django-pgjsonb-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0ed0a122b00744f941811e9f75b0db62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3506, "upload_time": "2015-01-24T18:48:57", "url": "https://files.pythonhosted.org/packages/d4/8e/f58f1e1bb1b65ee324318f4c062d7caf8ed5280d10e70f4da5089c3fafc8/django-pgjsonb-0.0.3.tar.gz" } ], "0.0.30": [ { "comment_text": "", "digests": { "md5": "4ccd3bfab6d2adb2d48d5d70e911d3db", "sha256": "87e0bff000572edb4b3426337c5d2cd7c4a25ca9a7a286ee66383c457b3940da" }, "downloads": -1, "filename": "django-pgjsonb-0.0.30.tar.gz", "has_sig": false, "md5_digest": "4ccd3bfab6d2adb2d48d5d70e911d3db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10337, "upload_time": "2017-10-19T08:09:03", "url": "https://files.pythonhosted.org/packages/f6/10/433e6b6dc644a616534b664d381dc8a3c17941a840d8f508034c320c48ce/django-pgjsonb-0.0.30.tar.gz" } ], "0.0.31": [ { "comment_text": "", "digests": { "md5": "2f31a794f6f7b18122b9b6cab88e30c0", "sha256": "069c191f426420a5f0c907eebf71bd98a3473a4ef95c6da2ceddf684969428fe" }, "downloads": -1, "filename": "django-pgjsonb-0.0.31.tar.gz", "has_sig": false, "md5_digest": "2f31a794f6f7b18122b9b6cab88e30c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10337, "upload_time": "2018-04-08T03:41:48", "url": "https://files.pythonhosted.org/packages/b8/bb/5498df7bfed93d6314875099f46865464f01650d59f3ff3f667e74c53d1f/django-pgjsonb-0.0.31.tar.gz" } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "a879e3bcc783eaf7870e663027475687", "sha256": "e24dc72a38b513daf656493a5528627c4fd4d6d2eacf33a1e5932ed72d57bd64" }, "downloads": -1, "filename": "django-pgjsonb-0.0.32.tar.gz", "has_sig": false, "md5_digest": "a879e3bcc783eaf7870e663027475687", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10313, "upload_time": "2018-04-09T08:59:18", "url": "https://files.pythonhosted.org/packages/37/be/7059cca0a8cd9c4ae635ac0d1c02328aa7f559936e952e98904265a3d093/django-pgjsonb-0.0.32.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "8a56a11545ad2534f67352b3af8e95f7", "sha256": "fca29b85ec726c613a5308d1a445548c5438436cf1677d5b1aaf3de95e9aaaa5" }, "downloads": -1, "filename": "django-pgjsonb-0.0.4.tar.gz", "has_sig": false, "md5_digest": "8a56a11545ad2534f67352b3af8e95f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4770, "upload_time": "2015-01-24T19:13:41", "url": "https://files.pythonhosted.org/packages/0e/be/6c24bf542f0b607594587ff15744a0d8ea686cc84327ddbe021384e5ca95/django-pgjsonb-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "7844edff52e308b5eddd962d07563356", "sha256": "edafae9718b6d1ed911c4683aba635586574e0168813f707806cde37fc63f3ee" }, "downloads": -1, "filename": "django-pgjsonb-0.0.5.tar.gz", "has_sig": false, "md5_digest": "7844edff52e308b5eddd962d07563356", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5038, "upload_time": "2015-01-24T19:23:08", "url": "https://files.pythonhosted.org/packages/0a/b4/5c2640cf79c57768f3f90fc385f74035f8f60d1e3d3626f41999b27b2fe3/django-pgjsonb-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6c1cfee4879f3fb08e854be53795351f", "sha256": "b7169e810df2e7182bab3c22368c1f415bf79ddb659f721c2c62146c4da84e57" }, "downloads": -1, "filename": "django-pgjsonb-0.0.6.tar.gz", "has_sig": false, "md5_digest": "6c1cfee4879f3fb08e854be53795351f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5082, "upload_time": "2015-01-24T19:33:20", "url": "https://files.pythonhosted.org/packages/3e/02/f2647ccd2f55a0f687f847edcacee004d204b35ab0f327a42a1ca986f885/django-pgjsonb-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "5bbc6f4fdfa6bbb0f1d9638e5d43a5cc", "sha256": "5516797e132dbb2b1040767d6433e4532052339c9290ddf60c7f23e759188efa" }, "downloads": -1, "filename": "django-pgjsonb-0.0.7.tar.gz", "has_sig": false, "md5_digest": "5bbc6f4fdfa6bbb0f1d9638e5d43a5cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5109, "upload_time": "2015-01-24T19:38:00", "url": "https://files.pythonhosted.org/packages/8f/f1/2175f0c8a37ea018db1ede8f051756c3777cb3638dca8af3742a78766eec/django-pgjsonb-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "8d2533583ce5a68d369c673f1f8e57aa", "sha256": "5764d4b949cac4ede43259bbe25524d33a09a0bd4664eb34f3729999336cb60c" }, "downloads": -1, "filename": "django-pgjsonb-0.0.8.tar.gz", "has_sig": false, "md5_digest": "8d2533583ce5a68d369c673f1f8e57aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5107, "upload_time": "2015-01-24T20:05:21", "url": "https://files.pythonhosted.org/packages/28/71/6f21c6669dca6cbcf82779bb59801d77a37f04c1709ac62a59791be081a4/django-pgjsonb-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "b9ebfa8b5b643e2347df2ef7a4f51d45", "sha256": "76d5672d22183f7db47f2763abbe531e558fb21ef56ec2ff27069173213bab44" }, "downloads": -1, "filename": "django-pgjsonb-0.0.9.tar.gz", "has_sig": false, "md5_digest": "b9ebfa8b5b643e2347df2ef7a4f51d45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5137, "upload_time": "2015-01-25T15:00:26", "url": "https://files.pythonhosted.org/packages/b0/c4/b944d5c7c546c96603237b7b9fc10cae6c3af6eaae72d57110400f99e6a6/django-pgjsonb-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a879e3bcc783eaf7870e663027475687", "sha256": "e24dc72a38b513daf656493a5528627c4fd4d6d2eacf33a1e5932ed72d57bd64" }, "downloads": -1, "filename": "django-pgjsonb-0.0.32.tar.gz", "has_sig": false, "md5_digest": "a879e3bcc783eaf7870e663027475687", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10313, "upload_time": "2018-04-09T08:59:18", "url": "https://files.pythonhosted.org/packages/37/be/7059cca0a8cd9c4ae635ac0d1c02328aa7f559936e952e98904265a3d093/django-pgjsonb-0.0.32.tar.gz" } ] }