{ "info": { "author": "Can Mustafa \u00d6zdemir", "author_email": "canmustafaozdemir@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Database", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Text Processing :: Linguistic" ], "description": "nece?\n=====\n\nIntroduction\n------------\n\n.. figure:: https://raw.githubusercontent.com/tatterdemalion/django-nece/master/images/nece.png\n :alt: nece\n\nA \u201cContent Translation Framework\u201d using Postgresql\u2019s jsonb field. It\nsimply sets and gets translations from a jsonb field called\n``translations``.\n\nWhy?\n~~~~\n\nYou might ask why you should use django-nece since there are other, and\nmore mature content translation frameworks like `django-hvad`_ and\n`django-modeltranslation`_. Both of them are good in some ways, worst in\nothers.\n\nFor instance, it is very hard for ``django-hvad`` users to get default\nlanguage if there is no corresponding translation for an object. And it\nholds translated values in a different table, so every translation query\nresults in another hit to the database.\n\nOn the other hand ``django-modeltranslation`` adds multiple additional\nfields for multiple languages. The number of fields inceases by the\nnumber of languages you need to support. At the end it becomes a huge\nchunk of an object if you need to add more than 20 languages.\n\n``nece?`` more or less works like the latter one with an important\ndifference. It uses Postgresql\u2019s new ``JSONB`` field to hold translation\ninformation. And overrides the original one on query.\n\nDependencies\n------------\n\n::\n\n postgresql >= 9.4.5\n Django >= 1.9\n psycopg2 >= 2.5.4\n\n\nInstallation\n------------\n\nvia pypi:\n~~~~~~~~~\n\n::\n\n pip install nece\n\nvia setup.py\n~~~~~~~~~~~~\n\n::\n\n python setup.py install\n\nUsage\n-----\n\nLets say we have a model called ``Fruit``:\n\n::\n\n from nece.models import TranslationModel\n\n class Fruit(TranslationModel):\n name = CharField(max_length=255)\n\n def __str__(self):\n return self.name\n\n class Meta:\n translatable_fields = ('name',)\n\n``TranslationModel`` adds a jsonb field to this table and sets\ntranslations in a notation like the one below:\n\n::\n\n {u'de_de': {u'name': u'Apfel'},\n u'tr_tr': {u'name': u'elma'}}\n\nWhen we need the German translation we can simply choose the language\nand get the attribute as usual:\n\n::\n\n >> f = Fruit.objects.get(name='apple')\n >> print(f.name)\n apple\n >> f.language('de_de')\n >> print(f.name)\n Apfel\n\nYou can also filter out the ones containing any language translation:\n\n::\n\n >> Fruit.objects.all()\n [, , ]\n >> Fruit.objects.language('tr_tr')\n [, ] # there is no translation for banana\n >> Fruit.objects.language_or_default('tr_tr')\n [, , ]\n >> Fruit.objects.language('tr_tr').filter(name='elma')\n []\n >> Fruit.objects.language('tr_tr').get(name='elma')\n \n\nUpdating translations\n~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n >> fruit._language_code\n tr_tr\n >> fruit.name\n elma\n >> fruit.translate(name='armut').save()\n >> fruit.name\n armut\n >> fruit.language('en')\n >> fruit.translate('it_it', name='pera')\n >> fruit.language('it_it')\n >> fruit.name\n pera\n\nSettings\n--------\n\nTRANSLATIONS_DEFAULT\n~~~~~~~~~~~~~~~~~~~~\n\nDefault language code. Default value: ```en_us```\n\nTRANSLATIONS_MAP\n~~~~~~~~~~~~~~~~\n\nShortcuts for ```languagecode_countrycode``` notation. \n\nExample:\n\n::\n\n TRANSLATIONS_MAP = {\n \"en\": \"en_us\",\n \"tr\": \"tr_tr\",\n \"ar\": \"ar_sy\",\n \"bg\": \"bg_bg\",\n \"cs\": \"cs_cz\",\n \"da\": \"da_dk\",\n ...\n }\n\n\nDefault:\n\n::\n\n {'en': 'en_us'}\n\n\nTRANSLATIONS_FALLBACK\n~~~~~~~~~~~~~~~~~~~~~\n\nFallback language would be used if a translation is missing.\n\nExample:\n\n::\n TRANSLATIONS_FALLBACK = {\n 'fr_ca': ['fr_fr'],\n 'en_us': ['en_gb'],\n }\n\nAdmin panel\n--------\nUse `TranslatableModelAdmin` for pretty JSON editor (powered by `django-admin-json-editor`_).\n\n.. figure:: https://raw.githubusercontent.com/tatterdemalion/django-nece/master/images/admin.png\n :alt: nece\n\nExample:\n\n.. code-block:: python\n\n # settings.py\n INSTALLED_APPS = [\n ...\n 'django_admin_json_editor',\n ...\n ]\n\n # admin.py\n from nece.admin import TranslatableModelAdmin\n\n class PlaceAdmin(TranslatableModelAdmin):\n list_display = ('...')\n\n\nContributors & Thanks\n---------------------\n\n- `Erkan Ay`_\n- `Ayman Khalil`_\n- `G\u00f6n\u00fcl Sabah`_\n- `Faruk Rahmet`_\n- `Mathieu Richardoz`_\n- `Marc Hertzog`_\n- `Alexey Kotenko`_\n\n`Change Log`_\n\n\n.. _django-hvad: https://github.com/kristianoellegaard/django-hvad\n.. _django-modeltranslation: https://github.com/deschler/django-modeltranslation\n.. _Erkan Ay: https://github.com/erkanay\n.. _Ayman Khalil: https://github.com/aymankh86\n.. _G\u00f6n\u00fcl Sabah: https://github.com/gonulsabah\n.. _Faruk Rahmet: https://github.com/farukrahmet\n.. _Mathieu Richardoz: https://github.com/metamatik\n.. _Marc Hertzog: https://github.com/kemar\n.. _Alexey Kotenko: https://github.com/k0t3n\n.. _Change Log: https://github.com/tatterdemalion/django-nece/blob/master/CHANGELOG.md\n.. _django-admin-json-editor: https://github.com/abogushov/django-admin-json-editor\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/tatterdemalion/django-nece/tarball/0.8.2", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tatterdemalion/django-nece", "keywords": "translations,i18n,language,multilingual", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "nece", "package_url": "https://pypi.org/project/nece/", "platform": "", "project_url": "https://pypi.org/project/nece/", "project_urls": { "Download": "https://github.com/tatterdemalion/django-nece/tarball/0.8.2", "Homepage": "https://github.com/tatterdemalion/django-nece" }, "release_url": "https://pypi.org/project/nece/0.8.2/", "requires_dist": [ "Django (>=1.9)", "six (>=1.10.0)", "psycopg2 (>=2.8.1) ; extra == 'psycopg2'", "psycopg2-binary (>=2.8.1) ; extra == 'psycopg2-binary'" ], "requires_python": "", "summary": "A content translation framework using Postgresql's jsonb field in the background", "version": "0.8.2", "yanked": false, "yanked_reason": null }, "last_serial": 6028427, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "93e5fe3e60826c2640a9d2d339fa09aa", "sha256": "f95af5162a1de7f451c090c620f3b3c978bd85b6f81776fe6ba2a673115e09a2" }, "downloads": -1, "filename": "nece-0.1.tar.gz", "has_sig": false, "md5_digest": "93e5fe3e60826c2640a9d2d339fa09aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4305, "upload_time": "2016-01-22T06:46:32", "upload_time_iso_8601": "2016-01-22T06:46:32.108258Z", "url": "https://files.pythonhosted.org/packages/d6/b8/3363bb83ad38946eee63a996d4303556755be41edfa7c70b6428b8454d47/nece-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "0b758c322dab9840877ce61feb0ed55c", "sha256": "ee9361b8ac57723337f30efe3e719d0a62031cb3de8a1a2fb4a8abd283d6b1ed" }, "downloads": -1, "filename": "nece-0.2.tar.gz", "has_sig": false, "md5_digest": "0b758c322dab9840877ce61feb0ed55c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2863, "upload_time": "2016-01-22T07:10:49", "upload_time_iso_8601": "2016-01-22T07:10:49.852447Z", "url": "https://files.pythonhosted.org/packages/80/ed/104a7834bb7ad2172c28eb32cd6a21730f32c9449fec77e56a76cc111cd4/nece-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "0be7b3690c191a2fd3e7fb7a15a45865", "sha256": "59d6b0c6ea3aa4a2dc8f3f7bad76660dd3594e10d2a97fdcaae52e08cdb49f9d" }, "downloads": -1, "filename": "nece-0.3.tar.gz", "has_sig": false, "md5_digest": "0be7b3690c191a2fd3e7fb7a15a45865", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4316, "upload_time": "2016-01-22T09:31:55", "upload_time_iso_8601": "2016-01-22T09:31:55.582378Z", "url": "https://files.pythonhosted.org/packages/85/78/9b7104b148fe220298177d0cfcb11db79c7b2abddbf749c7d7f6eea81af7/nece-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "77a2e02fc0619e258358ce5e9947d60b", "sha256": "c5901f44212cc82792ebcc2d3728e4a67742ed2e849bdb1616b069bbe0ccdb78" }, "downloads": -1, "filename": "nece-0.4.tar.gz", "has_sig": false, "md5_digest": "77a2e02fc0619e258358ce5e9947d60b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4391, "upload_time": "2016-01-22T12:21:20", "upload_time_iso_8601": "2016-01-22T12:21:20.378459Z", "url": "https://files.pythonhosted.org/packages/82/f6/7c1b50c191dbd745f5634cb64e1d43764ecfc69cf22c40b8fd56e1ef384d/nece-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "48e71de9ddad953db19d67eba3a9f771", "sha256": "841ba3f757eb6e70c03df496bf645b7fac4c664bb620cf9bdb975395df662cd2" }, "downloads": -1, "filename": "nece-0.4.1.tar.gz", "has_sig": false, "md5_digest": "48e71de9ddad953db19d67eba3a9f771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6041, "upload_time": "2016-01-22T20:07:42", "upload_time_iso_8601": "2016-01-22T20:07:42.122767Z", "url": "https://files.pythonhosted.org/packages/3c/b7/d717f152ac4f12cfd9882c9167fe2d14bf79ecfaac91edbf1a67e4cc44f8/nece-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "511fcf0f7a49308b22f1a8dade8970b2", "sha256": "1bf18f587f66eee42aa1f5bf656dab053d5041d5215c1dd24b0605007517e17b" }, "downloads": -1, "filename": "nece-0.4.2.tar.gz", "has_sig": false, "md5_digest": "511fcf0f7a49308b22f1a8dade8970b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6108, "upload_time": "2016-01-23T16:09:02", "upload_time_iso_8601": "2016-01-23T16:09:02.064743Z", "url": "https://files.pythonhosted.org/packages/46/b1/42529addc1fea14efbd4c61c6fbdede85a611cff17ecf0f5fce1423d2d58/nece-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "e4d02bac0f500d117811f4464d1184b4", "sha256": "d6949ac791718a78d0bb6a65711b02b1b09d7f8faee2ed4c8083a5b04c4bcaff" }, "downloads": -1, "filename": "nece-0.4.3.tar.gz", "has_sig": false, "md5_digest": "e4d02bac0f500d117811f4464d1184b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6151, "upload_time": "2016-01-23T17:01:52", "upload_time_iso_8601": "2016-01-23T17:01:52.528283Z", "url": "https://files.pythonhosted.org/packages/91/fc/c2fb9ba92bb3c54b3b75da53bdcfe818ce940d3430c9da2df89eb7e5caa2/nece-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "eb7252b19743cda79746c5eead3af1a0", "sha256": "24e8c342ea5ceeadf8b47ad8dd29bb7780c926fb9da012838c802ec6bc6e89b5" }, "downloads": -1, "filename": "nece-0.4.4.tar.gz", "has_sig": false, "md5_digest": "eb7252b19743cda79746c5eead3af1a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6690, "upload_time": "2016-01-26T15:18:08", "upload_time_iso_8601": "2016-01-26T15:18:08.614354Z", "url": "https://files.pythonhosted.org/packages/77/6b/58d06f17accdf5c55431657f76391c4d1d1b95fca73b1d5ae9ec269f28c1/nece-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "84c901bfbc84ffa7525cf59dfb0cd19c", "sha256": "bffdb0064cba3d0d186910a1e560340cc9fe6e22d1b480d9da3fb5cd70b30541" }, "downloads": -1, "filename": "nece-0.4.5.tar.gz", "has_sig": false, "md5_digest": "84c901bfbc84ffa7525cf59dfb0cd19c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6781, "upload_time": "2016-01-28T14:37:55", "upload_time_iso_8601": "2016-01-28T14:37:55.380012Z", "url": "https://files.pythonhosted.org/packages/0f/ef/4d3974f6aed1e359da667439a894dbe1ea5a4d66c7c80c660188ff07a355/nece-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "bf4cc6596b2c327849af145899996e43", "sha256": "13e00c013cd4a52e0c8a7e0c703e45adbaf0611a81e891274dc7188592a1668d" }, "downloads": -1, "filename": "nece-0.4.6.tar.gz", "has_sig": false, "md5_digest": "bf4cc6596b2c327849af145899996e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6786, "upload_time": "2016-02-01T15:09:31", "upload_time_iso_8601": "2016-02-01T15:09:31.154860Z", "url": "https://files.pythonhosted.org/packages/80/0f/ffe6914d342c6701cda3f5d9eecd04843c4c420ad4deac10e4b0a1f29c8b/nece-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "1acaaed445a3788f56e0ba7c8cad25a0", "sha256": "9f2fad443a6bb0e692495f9fd8d931327174d6985d55142447aa0d8b38d4ef09" }, "downloads": -1, "filename": "nece-0.4.7.tar.gz", "has_sig": false, "md5_digest": "1acaaed445a3788f56e0ba7c8cad25a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6913, "upload_time": "2016-02-03T08:42:17", "upload_time_iso_8601": "2016-02-03T08:42:17.239559Z", "url": "https://files.pythonhosted.org/packages/1f/ac/dc930be264835253fc3fe677d4bc0000adb82978463b5a6962402ffe0fe4/nece-0.4.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "44fa4441f2e9cb1844b5786d0427d6e0", "sha256": "901e185e084dc03e243471a7192c18e47c429c3d7e223422dfbb1fc8ae5c7d3b" }, "downloads": -1, "filename": "nece-0.4.8.tar.gz", "has_sig": false, "md5_digest": "44fa4441f2e9cb1844b5786d0427d6e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6778, "upload_time": "2016-04-20T13:44:00", "upload_time_iso_8601": "2016-04-20T13:44:00.797147Z", "url": "https://files.pythonhosted.org/packages/b0/e2/802d17cf182fca979e31a8de1eb4ad0bb81cbacc49b40e96e2a76e32fbee/nece-0.4.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "b76c3798b7bb004f050e09fe72c8934f", "sha256": "61d70762543b098c528964901b52ed234fbeb05bb5d70081bf660edb37f86b5b" }, "downloads": -1, "filename": "nece-0.5.1.tar.gz", "has_sig": false, "md5_digest": "b76c3798b7bb004f050e09fe72c8934f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6798, "upload_time": "2016-04-21T11:26:59", "upload_time_iso_8601": "2016-04-21T11:26:59.508548Z", "url": "https://files.pythonhosted.org/packages/e3/16/3ababbbb9fae8db0f371416a23f2ed4c31ae73f3e74867ab66bbdf61de94/nece-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "c9ce00c6d2f20137f9fa7b89f0fd00e7", "sha256": "1eff761024ac5e8c52ba64ba5d1a443f684799acb82a8fac1a8fa74fbf9ddd7e" }, "downloads": -1, "filename": "nece-0.5.2.tar.gz", "has_sig": false, "md5_digest": "c9ce00c6d2f20137f9fa7b89f0fd00e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6800, "upload_time": "2016-04-21T11:31:56", "upload_time_iso_8601": "2016-04-21T11:31:56.635407Z", "url": "https://files.pythonhosted.org/packages/bf/46/6183c03c494a65e7518dd6427c400709ac4546323e7b08f44109636b3f96/nece-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "adb8b5046a20383f8c8509fa4d427646", "sha256": "9cb96f577c59bb63ca01687cb026f5d64f62131e3165f0644bd5fa5430179d64" }, "downloads": -1, "filename": "nece-0.5.3.tar.gz", "has_sig": false, "md5_digest": "adb8b5046a20383f8c8509fa4d427646", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6792, "upload_time": "2016-08-11T13:18:04", "upload_time_iso_8601": "2016-08-11T13:18:04.736114Z", "url": "https://files.pythonhosted.org/packages/42/c0/4c4f9612733d99afc25aacd102f801f856f0a7022f4402522ff8897e403e/nece-0.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "d91610a6a1eb0979532e94d689b5b21f", "sha256": "231a9fd105c190f40fc82b8c6892176129d5815a31e410eea104ff64816f893b" }, "downloads": -1, "filename": "nece-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d91610a6a1eb0979532e94d689b5b21f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5223, "upload_time": "2016-09-04T14:32:08", "upload_time_iso_8601": "2016-09-04T14:32:08.244152Z", "url": "https://files.pythonhosted.org/packages/4d/b9/4fa47dfb3f54b5f519e0010a23278120af583d36dff35b3923dd8b1a3719/nece-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "05b38a2304e18d97fa5f17f4acb09f94", "sha256": "1ac483cc9b08a5bf9c4068131ac734ff7b99c1d42316c90553173d8870043b25" }, "downloads": -1, "filename": "nece-0.6.1.tar.gz", "has_sig": false, "md5_digest": "05b38a2304e18d97fa5f17f4acb09f94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5328, "upload_time": "2016-09-05T08:34:58", "upload_time_iso_8601": "2016-09-05T08:34:58.457212Z", "url": "https://files.pythonhosted.org/packages/1c/b7/fb5459b2b8f499e4b2dc96b4e83d23bdf2da9630997a5936ee51d281f9ca/nece-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "6f27b7e2e1727185db77860b19d411a2", "sha256": "efe959dac325231b90d8838babfd7d02c2bdbce94deecdaa549e2aa7fac13813" }, "downloads": -1, "filename": "nece-0.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "6f27b7e2e1727185db77860b19d411a2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8811, "upload_time": "2017-08-21T10:01:08", "upload_time_iso_8601": "2017-08-21T10:01:08.141298Z", "url": "https://files.pythonhosted.org/packages/6b/b1/5c2761a490e5d61c5959c2182969e03be98062144b0c6d4eadb3a5078c0e/nece-0.7.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "966b1ee6999d40970deb7196859bbc7d", "sha256": "82d400390e7e19d225c9f75b167e1a9ce3a189e335bd801d5f219b5cc28fcda6" }, "downloads": -1, "filename": "nece-0.7.0.tar.gz", "has_sig": false, "md5_digest": "966b1ee6999d40970deb7196859bbc7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5747, "upload_time": "2017-08-21T10:01:09", "upload_time_iso_8601": "2017-08-21T10:01:09.327265Z", "url": "https://files.pythonhosted.org/packages/f8/48/9dcb25964d36705a7fb5a74019a1b2a3a5c1474d6b41a9dbf29613c38109/nece-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "156e4d59e9b552b996f95b91ff870a3d", "sha256": "6b905f954b778828442dcbe6272892dfe9447644e3306d1ec1cd5cf8a8f2800b" }, "downloads": -1, "filename": "nece-0.7.1-py2-none-any.whl", "has_sig": false, "md5_digest": "156e4d59e9b552b996f95b91ff870a3d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8816, "upload_time": "2017-08-21T11:12:29", "upload_time_iso_8601": "2017-08-21T11:12:29.667305Z", "url": "https://files.pythonhosted.org/packages/b3/cb/218a2a8b7d3131606bf01ff2a97fe1d47b545044c711de90ad20b6d49f12/nece-0.7.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8bdcb82828883991f1d03028a75e00c6", "sha256": "8e7f430f14ac48c77fcd292fdedce37c733cf39c5ed030fb7d234938a70afbab" }, "downloads": -1, "filename": "nece-0.7.1.tar.gz", "has_sig": false, "md5_digest": "8bdcb82828883991f1d03028a75e00c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5754, "upload_time": "2017-08-21T11:12:30", "upload_time_iso_8601": "2017-08-21T11:12:30.882257Z", "url": "https://files.pythonhosted.org/packages/09/e5/e4e4adbd37cd8da6bc11e68dd28ad8273c2f96decdf8c7be4e0fa11a71c9/nece-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "e43a88e0921332949f1977ec110d1ec0", "sha256": "48b4f4c6b0c069eda7f134df34b24ca4b1cd5437fdde80d09fac16aa6a6d5237" }, "downloads": -1, "filename": "nece-0.7.2.tar.gz", "has_sig": false, "md5_digest": "e43a88e0921332949f1977ec110d1ec0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5742, "upload_time": "2017-09-05T08:34:04", "upload_time_iso_8601": "2017-09-05T08:34:04.096323Z", "url": "https://files.pythonhosted.org/packages/80/52/f4ed55732cf3259c6f8f985c95e7f3ad924a1bf112f0d19a0fad0e0c3e45/nece-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "bde1a01d49d68ee9e62ea230ff2ded8e", "sha256": "3820d8ff6e778f52e37b8946148233ffe6e27b6bfc39b53f9c50a4f8d9ecf767" }, "downloads": -1, "filename": "nece-0.7.3.tar.gz", "has_sig": false, "md5_digest": "bde1a01d49d68ee9e62ea230ff2ded8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5758, "upload_time": "2017-09-05T10:19:38", "upload_time_iso_8601": "2017-09-05T10:19:38.721499Z", "url": "https://files.pythonhosted.org/packages/4b/49/ef228e5612dd1e48754b53d3fa3a00b95624cd93fbc74b4533b0d425ef6c/nece-0.7.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "e5becb39312052283feb53df286f2f07", "sha256": "c16aab887b5ef07e02b95e97450ab70614752171f082ed095f64e959ecd7a060" }, "downloads": -1, "filename": "nece-0.7.4.tar.gz", "has_sig": false, "md5_digest": "e5becb39312052283feb53df286f2f07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5771, "upload_time": "2017-09-05T18:02:47", "upload_time_iso_8601": "2017-09-05T18:02:47.465828Z", "url": "https://files.pythonhosted.org/packages/72/7d/26e8f4589ee6a325ee7f3fe436c452038920fb7ec11fae770e9e758fafba/nece-0.7.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "620cb79f2a5be45f8be8de4ce32e1483", "sha256": "b8675ff275d67883916b4959c05c6d76fabb78d664453cf0b050c2d9e318a438" }, "downloads": -1, "filename": "nece-0.7.5.tar.gz", "has_sig": false, "md5_digest": "620cb79f2a5be45f8be8de4ce32e1483", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5766, "upload_time": "2017-09-21T08:42:35", "upload_time_iso_8601": "2017-09-21T08:42:35.895568Z", "url": "https://files.pythonhosted.org/packages/f1/f1/c7b8025ed5eddaf7deebab83597ef878fc06af6567d7369a7980e41c4323/nece-0.7.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "9408712be95c143fc7ceff7f241802ad", "sha256": "cbcee65569220fb6d81a2b125de4b981479b6f3355b6bdb99bac747a654ee390" }, "downloads": -1, "filename": "nece-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9408712be95c143fc7ceff7f241802ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7647, "upload_time": "2019-06-15T18:42:19", "upload_time_iso_8601": "2019-06-15T18:42:19.579567Z", "url": "https://files.pythonhosted.org/packages/6c/ea/d227d112d67145543dde760acc875f4cae9ffcc3c95d6c0fe7aeb1943e67/nece-0.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bc327a2a22187df579a23b73c39b2b3f", "sha256": "aab2cea2626999bd8d562ddad6df067bf0ae9890c1a14784172bf40cf9f682a3" }, "downloads": -1, "filename": "nece-0.8.0.tar.gz", "has_sig": false, "md5_digest": "bc327a2a22187df579a23b73c39b2b3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6396, "upload_time": "2019-06-15T18:42:21", "upload_time_iso_8601": "2019-06-15T18:42:21.247055Z", "url": "https://files.pythonhosted.org/packages/21/38/9ec258fbf5735256939a4d69987b0500104252a9397c523a322cd86c2101/nece-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "ccf6da1db44b07ba7a7d4b84a794a7df", "sha256": "953f2c352f60d3174987ff8e164fdcbd14017d51ea7d78c88ca4562803eaf2b9" }, "downloads": -1, "filename": "nece-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ccf6da1db44b07ba7a7d4b84a794a7df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8443, "upload_time": "2019-08-05T08:10:40", "upload_time_iso_8601": "2019-08-05T08:10:40.143506Z", "url": "https://files.pythonhosted.org/packages/db/f1/a0698d442164f7fdcd7d5a9ba62fe3cccab214753859e9ee71f14ad5255b/nece-0.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "25586110458f98b3852100e094068ffb", "sha256": "dfa80fba1d20d113048af80c04e6a39aef7b5eee6681d7c28d99e330ef173609" }, "downloads": -1, "filename": "nece-0.8.1.tar.gz", "has_sig": false, "md5_digest": "25586110458f98b3852100e094068ffb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7647, "upload_time": "2019-08-05T08:10:43", "upload_time_iso_8601": "2019-08-05T08:10:43.125791Z", "url": "https://files.pythonhosted.org/packages/7a/de/755ca65fa8763970786382fcddd47b0d8f2a3b84b9dada7152ad13f7ca47/nece-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "ceea893f70cc93c2cd55fa9e9d982cbf", "sha256": "83c491830a7bf9aa8477653a076935fee1911984680e22983f75461175d79f4b" }, "downloads": -1, "filename": "nece-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ceea893f70cc93c2cd55fa9e9d982cbf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8483, "upload_time": "2019-10-25T09:23:13", "upload_time_iso_8601": "2019-10-25T09:23:13.050782Z", "url": "https://files.pythonhosted.org/packages/8b/17/e62f606f556554a4c930204c02576bb320a8b6aaf00ec61fad79703573dc/nece-0.8.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5bb75f66f34fb6c7edcbc9612bb41328", "sha256": "3b4d3f527f48215f8176c5b8019d0e164f3b0e9760c908d8c5a44f8e69da42de" }, "downloads": -1, "filename": "nece-0.8.2.tar.gz", "has_sig": false, "md5_digest": "5bb75f66f34fb6c7edcbc9612bb41328", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7869, "upload_time": "2019-10-25T09:23:16", "upload_time_iso_8601": "2019-10-25T09:23:16.635295Z", "url": "https://files.pythonhosted.org/packages/72/c1/b5d1be1d3cdb0d29cc2016cca308aaed6d5b60639991e9ff03fc8f05cc16/nece-0.8.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ceea893f70cc93c2cd55fa9e9d982cbf", "sha256": "83c491830a7bf9aa8477653a076935fee1911984680e22983f75461175d79f4b" }, "downloads": -1, "filename": "nece-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ceea893f70cc93c2cd55fa9e9d982cbf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8483, "upload_time": "2019-10-25T09:23:13", "upload_time_iso_8601": "2019-10-25T09:23:13.050782Z", "url": "https://files.pythonhosted.org/packages/8b/17/e62f606f556554a4c930204c02576bb320a8b6aaf00ec61fad79703573dc/nece-0.8.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5bb75f66f34fb6c7edcbc9612bb41328", "sha256": "3b4d3f527f48215f8176c5b8019d0e164f3b0e9760c908d8c5a44f8e69da42de" }, "downloads": -1, "filename": "nece-0.8.2.tar.gz", "has_sig": false, "md5_digest": "5bb75f66f34fb6c7edcbc9612bb41328", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7869, "upload_time": "2019-10-25T09:23:16", "upload_time_iso_8601": "2019-10-25T09:23:16.635295Z", "url": "https://files.pythonhosted.org/packages/72/c1/b5d1be1d3cdb0d29cc2016cca308aaed6d5b60639991e9ff03fc8f05cc16/nece-0.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }