{ "info": { "author": "Marc Bourqui", "author_email": "pypi.kemar@bourqui.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Utilities" ], "description": "|Python| |Django| |License| |PyPI| |Build Status| |Coverage Status|\n\nDjango-EChoices\n===============\n\nChoices for Django model fields as enumeration\n\nFeatures\n--------\n\n- Specialized `enum types <#enum>`__\n- Specialized `model fields <#modelfield>`__\n- Accessible in `templates <#templages>`__\n\nRequirements\n------------\n\n- `Python `__ >= 3.4\n- `Django `__ >= 1.9.13\n\nInstallation\n------------\n\nUsing `PyPI `__\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n1. Run ``pip install django-echoices``.\n\nUsing the source code\n~~~~~~~~~~~~~~~~~~~~~\n\n1. Make sure ```pandoc`` `__ is installed\n2. Run ``./pypi_packager.sh``\n3. Run ``pip install dist/django_echoices-x.y.z-[...].wheel``, where\n ``x.y.z`` must be replaced by the actual version number and ``[...]``\n depends on your packaging configuration\n\nUsage\n-----\n\nEnumeration\n~~~~~~~~~~~\n\nFirst, define your choices enumeration (in your ``models.py`` for\nexample):\n\n::\n\n from echoices.enums import EChoice\n\n class EStates(EChoice):\n # format is: (value -> char or str or int, label -> str)\n CREATED = ('c', 'Created')\n SUBMITTED = ('s', 'Submitted')\n\nModel field\n~~~~~~~~~~~\n\nRegular model field\n^^^^^^^^^^^^^^^^^^^\n\nThen, either use a regular model field:\n\n::\n\n from django.db import models\n\n class MyModel(models.Model):\n state = models.CharField(max_length=EStates.max_value_length(),\n choices=EStates.choices(),\n default=EStates.CREATED.value)\n\n**Note**: If your value is an ``int``, you can use\n``models.IntegerField`` instead.\n\nSpecialized field\n^^^^^^^^^^^^^^^^^\n\nYou can also use specialized field. Using such a field, you will then\nonly handle ``Echoice`` instances.\n\n::\n\n from django.db import models\n from echoices.fields import make_echoicefield\n\n class MyModel(models.Model):\n # `max_length` is set automatically\n state = make_echoicefield(EStates, default=EStates.CREATED)\n\n**Note**: ``MyModel.state`` will be ``Estates`` instance stored in a\n``EStatesField`` field. See `documentation <#modelfield>`__ for more\ndetails.\n\n**WARNING**: requires special handling of migrations. Read more in the\n`doc <#migrations>`__.\n\nDerivation\n~~~~~~~~~~\n\nYou can add your own fields to the ``value`` and ``label`` ones. To do\nso, you have to override the **init**\\ () and your signature must look\nlike: ``self, value, label, *args`` where you replace ``*args`` with\nyour own positional arguments, as you would do when defining a custom\nEnum. Do *not* call the super().\\ **init**\\ (), as ``value`` and\n``label`` are already set internally by ``EChoice``.\n\nAs when dealing with a derived Enum, you can also add your own methods.\n\n::\n\n from echoices.enums import EChoice\n\n class EMyChoices(EChoice):\n \"\"\"Another variant of EChoice with additionnal content\"\"\"\n\n MY_CHOICE = (1, 'First choice', 'my additional value')\n\n def __init__(self, value, label, my_arg):\n self.my_arg = my_arg\n # Note: super().__init__() shall *not* be called!\n\n def show_myarg(self):\n \"\"\"Used as: EMyChoices.MY_CHOICE.show_myarg()\"\"\"\n print(self.my_arg)\n\n @classmethod\n def show_all(cls):\n \"\"\"Used as: EMyChoices.show_all()\"\"\"\n print(\", \".join([e.my_arg for e in list(cls)]))\n\nIn templates\n~~~~~~~~~~~~\n\nAssume a ``Context(dict(estates=myapp.models.EStates))`` is provided to\nthe following templates.\n\n- Fields of the ``EChoice`` can be accessed in the templates as:\n ``{{ estates.CREATED.value }} {{ estates.CREATED.label }}``\n\n- ``EChoice`` can also be enumerated:\n ``{% for state in estates %} {{ state.value }} {{ state.label }} {% endfor %}``\n\nShort documentation\n-------------------\n\nSpecialized enum types\n~~~~~~~~~~~~~~~~~~~~~~\n\n``enums.EChoice``\n^^^^^^^^^^^^^^^^^\n\nBase enum type. Each enum element is a tuple ``(value, label)``, where\n[t]he first element in each tuple is the actual value to be set on the\nmodel, and the second element is the human-readable name\u00a0\n\\ `doc `__\\ .\nValues **must** be unique. Can be derived for further customization.\n\n``enums.EOrderedChoice``\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nSupports ordering of elements. ``EOrderedChoice.choices()`` takes an\nextra optional argument, ``order``, which supports three values:\n'sorted', 'reverse' or 'natural' (default). If ``sorted``, the choices\nare ordered according to their value. If ``reverse``, the choices are\nordered according to their value as if each comparison were reversed. If\n``natural``, the order is the one used when instantiating the\nenumeration.\n\n``enums.EAutoChoice``\n^^^^^^^^^^^^^^^^^^^^^\n\nGenerates auto-incremented numeric values. It's then used like:\n\n::\n\n from echoices.enums import EAutoChoice\n\n class EStates(EAutoChoice):\n # format is: label -> str\n CREATED = 'Created'\n SUBMITTED = 'Submitted'\n\nAPI\n^^^\n\nOverriden EnumMeta methods\n''''''''''''''''''''''''''\n\n- ``EChoice.__getitem__()``, such that you can retrieve an ``EChoice``\n instance using ``EChoice['my_value']``\n\nAdditional classmethods\n'''''''''''''''''''''''\n\n- ``choices()`` generates the choices as expected by a Django model\n field\n- ``max_value_length()`` returns the max length for the Django model\n field, if the values are strings\n- ``values()`` returns a list of all the values\n- ``get(value, default=None)`` returns the EChoice instance having that\n value, else returns the default\n\nSpecialized model fields\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n``fields.EChoiceField`` via ``fields.make_echoicefield()``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nDeal directly with the enum instances instead of their DB storage value.\nThe specialized field will be derived from a ``models.Field`` subclass,\nthe internal representation is deduced from the value type. So for\nexample if the values are strings, then the the ``EChoiceField`` will\nsubclass ``models.CharField``; and if the values are integers then it\nwill be ``models.IntegerField``. Actually supports ``str``, ``int``,\n``float`` and (non-null) ``bool`` as enum values.\n\n``make_echoicefield()`` will return an instance of ``EChoiceField``\nwhich subclasses a field type from ``models.CharField``. The exact name\nof the field type will be ``MyEnumNameField`` in Django >= 1.9, note the\nsuffixed 'Field'. For earlier versions of Django, it will be\n``EChoiceField``.\n\nThus, ``MyModel.my_echoice_field`` will be an ``EChoice`` instance\nstored in an ``EChoiceField`` field.\n\nMigrations\n''''''''''\n\nSince the field is generated with the help of a factory function, it\ndoes not exist as is as a field class in ``echoices.fields``. But, when\ngenerating a migration file, Django will set the class of the field as\nthe resulting class from ``make_echoicefield()``, which does not exist\nin ``echoices.fields``. This will cause the Django server to crash, as\nan\n``AttributeError: module 'echoices.fields' has no attribute 'MyEnumNameField'``\nexception will be raised.\n\nTo prevent this, you have to edit the migration file and replace the\ninstantiation of the non-existing class with a call to\n``make_echoicefield()``, with the same parameters as when defining the\nfield in your model.\n\nFor example, assume you have the following model defined in\n``models.py``:\n\n::\n\n from django.db import models\n from echoices.fields import make_echoicefield\n\n class MyModel(models.Model):\n state = make_echoicefield(EStates, default=EStates.CREATED)\n\nThen you would replace the generated field instantiation statement in\n``migrations/0001_initial.py``\n\n::\n\n migrations.CreateModel(\n name='MyModel',\n fields=[\n # Replace the statement below\n ('state', echoices.fields.EStatesField(\n echoices=app.models.EStates,\n default=app.models.EStates(1))\n ),\n ],\n\nwith\n\n::\n\n ('state', echoices.fields.make_echoicefield(\n echoices=app.models.EStates,\n default=app.models.EStates.CREATED)\n ),\n\n``fields.MultipleEChoiceField``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSimilar to previous fields, but supports multiple values to be selected.\n`**Not yet implemented** <#3>`__.\n\nUsage in templates\n~~~~~~~~~~~~~~~~~~\n\nAssume a ``Context(dict(estates=myapp.models.EStates))`` is provided to\nthe following templates.\n\n- Fields of the ``EChoice`` can be accessed in the templates as:\n ``{{ estates.CREATED.value }} {{ estates.CREATED.label }}``\n\n- ``EChoice`` can also be enumerated:\n ``{% for state in estates %} {{ state.value }} {{ state.label }} {% endfor %}``\n\n.. |Python| image:: https://img.shields.io/badge/Python-3.4,3.5,3.6-blue.svg?style=flat-square\n :target: /\n.. |Django| image:: https://img.shields.io/badge/Django-1.9,1.10,1.11-blue.svg?style=flat-square\n :target: /\n.. |License| image:: https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat-square\n :target: /LICENSE\n.. |PyPI| image:: https://img.shields.io/pypi/v/django_echoices.svg?style=flat-square\n :target: https://pypi.python.org/pypi/django-echoices\n.. |Build Status| image:: https://travis-ci.org/mbourqui/django-echoices.svg?branch=master\n :target: https://travis-ci.org/mbourqui/django-echoices\n.. |Coverage Status| image:: https://coveralls.io/repos/github/mbourqui/django-echoices/badge.svg?branch=master\n :target: https://coveralls.io/github/mbourqui/django-echoices?branch=master\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/mbourqui/django-echoices/releases/tag/v2.6.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mbourqui/django-echoices/", "keywords": "django choices models enum", "license": "GNU GPLv3", "maintainer": "", "maintainer_email": "", "name": "django-echoices", "package_url": "https://pypi.org/project/django-echoices/", "platform": "", "project_url": "https://pypi.org/project/django-echoices/", "project_urls": { "Download": "https://github.com/mbourqui/django-echoices/releases/tag/v2.6.0", "Homepage": "https://github.com/mbourqui/django-echoices/" }, "release_url": "https://pypi.org/project/django-echoices/2.6.0/", "requires_dist": [ "django (>=1.9)" ], "requires_python": "", "summary": "Choices for Django model fields as enumeration", "version": "2.6.0" }, "last_serial": 3925941, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8464f9041560d87b79452ca5267bfbed", "sha256": "0dbb5835720966993cba0fc23e109f317a294a48721b9ffee856c82faee75336" }, "downloads": -1, "filename": "django_echoices-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8464f9041560d87b79452ca5267bfbed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15081, "upload_time": "2017-05-17T15:09:30", "url": "https://files.pythonhosted.org/packages/38/da/768f969d5e37920d12df7df6e56f3b28fafa27bea8d0fc6fea55a3e292ff/django_echoices-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6a7a10c2464c4ae1a32661ffb3cb063", "sha256": "615e4e360a9acc256a678a84012a4540575527aff9f1256058833d1285885873" }, "downloads": -1, "filename": "django-echoices-1.0.0.tar.gz", "has_sig": false, "md5_digest": "f6a7a10c2464c4ae1a32661ffb3cb063", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23503, "upload_time": "2017-05-17T15:09:32", "url": "https://files.pythonhosted.org/packages/87/d9/56a72d83760d4beb222123284ceceea058ca2da5f5dd31597b952c777f58/django-echoices-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "61f1ac9d2f79a4f6748b17dca078c1bc", "sha256": "5d86ce4d7f19b0be6ffca6cd0d6288f6d729b37dccf2bf822da7c23fb155c6ad" }, "downloads": -1, "filename": "django_echoices-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "61f1ac9d2f79a4f6748b17dca078c1bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16135, "upload_time": "2017-05-18T12:05:53", "url": "https://files.pythonhosted.org/packages/a6/0b/81047f6b39885f45ba7a519b20a05b345cf3607039b3244b6b02a7ba9b77/django_echoices-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22d3c8b762398ca4c66376259670fb1a", "sha256": "1c228d8bef32ae1904ce037ec301091db099366bfab0d27d10a617cdb84998b8" }, "downloads": -1, "filename": "django-echoices-1.1.0.tar.gz", "has_sig": false, "md5_digest": "22d3c8b762398ca4c66376259670fb1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24615, "upload_time": "2017-05-18T12:05:55", "url": "https://files.pythonhosted.org/packages/fe/5d/e2fd1efcdf068711d95517d29d680f2656dcc5407faabba310b20f8b65c5/django-echoices-1.1.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "f91dc97f8588a1cba37502c2bc7f89ed", "sha256": "795c4209f146bb2917bdc007e13d3917b5fa75b9352662f972bae8194348adfa" }, "downloads": -1, "filename": "django_echoices-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f91dc97f8588a1cba37502c2bc7f89ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18503, "upload_time": "2017-05-22T15:47:13", "url": "https://files.pythonhosted.org/packages/08/f2/6214fa26399838aed99033d14a3ca58dfef8c8a842afbb737a3464687123/django_echoices-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c89e204adf9db19a0e31e4566287933", "sha256": "74628eca2c419fd9f05fa5fceb510e702b144bb1711be099b8aaa63388b63642" }, "downloads": -1, "filename": "django-echoices-2.0.0.tar.gz", "has_sig": false, "md5_digest": "3c89e204adf9db19a0e31e4566287933", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27177, "upload_time": "2017-05-22T15:47:15", "url": "https://files.pythonhosted.org/packages/2f/23/93b98322b391cf4af856e5cb2e88f96900c520897b599ee34c01034d1679/django-echoices-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "4ea97a58f4bdc527c1d0774471a3fda4", "sha256": "9efcc8599cf9cb6c0ea71e0a60388ce2f6f479b17b0a14a913bfbbcc6e7c0f45" }, "downloads": -1, "filename": "django_echoices-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4ea97a58f4bdc527c1d0774471a3fda4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19915, "upload_time": "2017-05-23T13:43:47", "url": "https://files.pythonhosted.org/packages/fb/16/6f0bd9254f69aa80f942e58d4cccada2566f71f0cf032f35911b32a741af/django_echoices-2.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09997340317d413af46ea183a43074f1", "sha256": "5c93097b5bb490943e13eda6f3af174cb8691b1a78cc095827a1896fd5f81354" }, "downloads": -1, "filename": "django-echoices-2.1.0.tar.gz", "has_sig": false, "md5_digest": "09997340317d413af46ea183a43074f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28647, "upload_time": "2017-05-23T13:43:49", "url": "https://files.pythonhosted.org/packages/5c/0a/ff19d035ac244e66939c940eda8b9f6549c22e371e4cd4ebf5c6fa60b189/django-echoices-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "557d7990987ebca9f33ab072c6865b77", "sha256": "02c3c8c693809f35cd3b2a55c7d281d16dd4ebd340b0b9b9aa4c0ac396f051b0" }, "downloads": -1, "filename": "django_echoices-2.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "557d7990987ebca9f33ab072c6865b77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20007, "upload_time": "2017-05-24T08:58:27", "url": "https://files.pythonhosted.org/packages/6c/d0/bc0c9fb2b2c48f6000c10e0f619585eeb523fe68eaffc7ae78d4cf062d8f/django_echoices-2.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2e6da6060a7820d7b3f41262cc30258", "sha256": "e06fc5e14cb10a32b4cb1d497d920fbcb777f5138fe7852f4c8e07f13b05dd42" }, "downloads": -1, "filename": "django-echoices-2.1.1.tar.gz", "has_sig": false, "md5_digest": "b2e6da6060a7820d7b3f41262cc30258", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28696, "upload_time": "2017-05-24T08:58:29", "url": "https://files.pythonhosted.org/packages/64/b1/6393db51bf9f00738a0a07a50be3722024287624f909d347a5ae5673acb3/django-echoices-2.1.1.tar.gz" } ], "2.2.5": [ { "comment_text": "", "digests": { "md5": "fa220c1ace81e757407a7ed31360547a", "sha256": "cd0296cc90c3c9c0512eef8f63924198651c858c2fcea443a8b84c8a098e4329" }, "downloads": -1, "filename": "django_echoices-2.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fa220c1ace81e757407a7ed31360547a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22947, "upload_time": "2017-06-16T15:02:21", "url": "https://files.pythonhosted.org/packages/d7/43/d549be614cfff73763a641c958c27769ab75ef6239462c6d8735e69c726a/django_echoices-2.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ef9cd710ba60a1a1d5d5be9bbb0154a", "sha256": "f3167993151ed2d7ab6a6a3c2c7f1499f3d2a951af0f66357067ef816cd5bdaa" }, "downloads": -1, "filename": "django-echoices-2.2.5.tar.gz", "has_sig": false, "md5_digest": "0ef9cd710ba60a1a1d5d5be9bbb0154a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31138, "upload_time": "2017-06-16T15:02:24", "url": "https://files.pythonhosted.org/packages/e9/58/4f95c2d9d7e94d4ff164d06a44794098f12e5700405cbbe30e90b31540bf/django-echoices-2.2.5.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "2765e9ecc5065e7469559b64dc5048df", "sha256": "657b75210f044f4c89bcbb239acd7bb3cf5052babee9778022230e0e09721909" }, "downloads": -1, "filename": "django_echoices-2.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2765e9ecc5065e7469559b64dc5048df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23604, "upload_time": "2017-07-13T16:11:25", "url": "https://files.pythonhosted.org/packages/8e/fc/b067983f405ade19dbb65ef2c99afd73348ec492bfa969acbe8e668d801f/django_echoices-2.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3166c3e6667a4045cff93666775bfe65", "sha256": "e6354cf4fc832ece6b60613d6df1d282f70597fb589486104a98b1b16ed3ee3d" }, "downloads": -1, "filename": "django-echoices-2.3.0.tar.gz", "has_sig": false, "md5_digest": "3166c3e6667a4045cff93666775bfe65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31419, "upload_time": "2017-07-13T16:11:30", "url": "https://files.pythonhosted.org/packages/84/8d/ce17769617c6b3d77fa57bf36f604ef3bdb68a49e178415db37dabdf139e/django-echoices-2.3.0.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "c60ea35b4e8203a23463d0a37f6e0fda", "sha256": "3a9c55e54d3537ea476de12ca59da755a9952144abcb044015690604fd2b6d70" }, "downloads": -1, "filename": "django_echoices-2.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c60ea35b4e8203a23463d0a37f6e0fda", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23726, "upload_time": "2017-08-08T17:16:17", "url": "https://files.pythonhosted.org/packages/7e/ed/9e9320f13b479a9f1463cd47830a784e7b78d00f6b68cda2b79711d233e6/django_echoices-2.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "494e59538a4a65cf62c958df8d69c4c1", "sha256": "ea8239b2688f193da5da162312d418a4d007ec1bebdd32353e6c98bfe48a6a47" }, "downloads": -1, "filename": "django-echoices-2.4.0.tar.gz", "has_sig": false, "md5_digest": "494e59538a4a65cf62c958df8d69c4c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31573, "upload_time": "2017-08-08T17:16:20", "url": "https://files.pythonhosted.org/packages/46/69/483b7321f65545c72a48d51ef9de67a56a200cf1298ad8421aeed4fb28dd/django-echoices-2.4.0.tar.gz" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "39639ab71a0bcb6564e59398220682c5", "sha256": "f01be9bd59d979830e658a50a8b9f14a33440d2aa3ab819ab9c5bbabc3b1e178" }, "downloads": -1, "filename": "django_echoices-2.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "39639ab71a0bcb6564e59398220682c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24109, "upload_time": "2017-08-09T09:46:04", "url": "https://files.pythonhosted.org/packages/ef/20/9b68b3fd1698c1362be516efe735d2ef1b7b19f43603fe7575e9ebbfb87e/django_echoices-2.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f89d6ac3bd34eaca5b6370adfdd6235", "sha256": "b16011d4d6afd9aa00d8a51384e5400f9dc286114b514efc0b821124e94844cc" }, "downloads": -1, "filename": "django-echoices-2.4.1.tar.gz", "has_sig": false, "md5_digest": "1f89d6ac3bd34eaca5b6370adfdd6235", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31951, "upload_time": "2017-08-09T09:46:06", "url": "https://files.pythonhosted.org/packages/d1/9a/657ae0453d36f4f7dd970c38e38704a1dc713f59d092ff87e20afc2430bf/django-echoices-2.4.1.tar.gz" } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "d6ba3398924364e93f502f881f540060", "sha256": "0745a606fad2881bf5e0cd95d180a83a719264e3629ca5fc49cc2ac13fb5102b" }, "downloads": -1, "filename": "django_echoices-2.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d6ba3398924364e93f502f881f540060", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24154, "upload_time": "2017-08-09T12:22:20", "url": "https://files.pythonhosted.org/packages/9e/88/4265e30a05fc5bb65b68c139417b5b4fd5a0316063ffd606e2fb7c83504d/django_echoices-2.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c41ddd19c1bbfcfec2fa25fbf9fadcb", "sha256": "eddac8c914873cbc79c4b27a56c95b56bcd67e65baf9e64ea8c7dcf4d536b9d4" }, "downloads": -1, "filename": "django-echoices-2.4.2.tar.gz", "has_sig": false, "md5_digest": "0c41ddd19c1bbfcfec2fa25fbf9fadcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31990, "upload_time": "2017-08-09T12:22:22", "url": "https://files.pythonhosted.org/packages/e7/30/743fd118999ceb695ff11a9206b30d19c212caea66afaa7d16f188736da9/django-echoices-2.4.2.tar.gz" } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "7db6657ce3340bb5c9e4f6c6247e80be", "sha256": "e01acf1effc0d2dc24d4e30f21fed91b327cee3896039a0e8d32dc1b3b8d2609" }, "downloads": -1, "filename": "django_echoices-2.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7db6657ce3340bb5c9e4f6c6247e80be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24167, "upload_time": "2017-08-09T12:53:53", "url": "https://files.pythonhosted.org/packages/d3/8a/0db70f5a562a4cb34431a4af66124a745f4624f67070d10fb9817e430f4b/django_echoices-2.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c0a96276faba9147246e9928c57649bf", "sha256": "74778079013a4704ab15de69ba4555ffd91f00a176529ec218389ac65a0cef71" }, "downloads": -1, "filename": "django-echoices-2.4.3.tar.gz", "has_sig": false, "md5_digest": "c0a96276faba9147246e9928c57649bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32005, "upload_time": "2017-08-09T12:53:55", "url": "https://files.pythonhosted.org/packages/df/f4/0b8d97edc7dfec0bbdb398ae092f4dcf5831cbd361e6cd7dac0293aca8ee/django-echoices-2.4.3.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "d2e4b98e7bca3013b268b07bdb5c302f", "sha256": "43e84c92d41b7ac38c3663ae7a4f40012daed306fd2543b546826c4727d15d01" }, "downloads": -1, "filename": "django_echoices-2.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d2e4b98e7bca3013b268b07bdb5c302f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24717, "upload_time": "2017-08-10T17:20:51", "url": "https://files.pythonhosted.org/packages/cd/e1/9973bd728b5936c125295a664f8cac6ff426b7dcb828a29ba223d98791b7/django_echoices-2.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe28bf0fb07b41d0815c0f96f0a35dd9", "sha256": "ca860833c60daea62d41ae2e79fa79b1cbf69f7d0ef4b4671393af2435923b46" }, "downloads": -1, "filename": "django-echoices-2.5.0.tar.gz", "has_sig": false, "md5_digest": "fe28bf0fb07b41d0815c0f96f0a35dd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32559, "upload_time": "2017-08-10T17:20:53", "url": "https://files.pythonhosted.org/packages/c6/ed/fb22197e6fe99f3482e28295e92ac515428988a81f8dd13a14b2d93b3297/django-echoices-2.5.0.tar.gz" } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "7f1cfd54e2d0dd3d0967c4011db893bf", "sha256": "d8ff546b063d4952e68395e6b80434139dc9d79d95c665dfa324837f7da7f39c" }, "downloads": -1, "filename": "django_echoices-2.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7f1cfd54e2d0dd3d0967c4011db893bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25087, "upload_time": "2017-09-04T16:22:39", "url": "https://files.pythonhosted.org/packages/dd/17/bdfa8d53bf9b315e682969584aa7ccee3a5ec390c4fadfbced53f064ad68/django_echoices-2.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ffa036653756ed14d084a816127826b", "sha256": "f155607418925c18cb722e0af1eeda273b70e1c125c7b77bd79ff2aa8546694d" }, "downloads": -1, "filename": "django-echoices-2.5.1.tar.gz", "has_sig": false, "md5_digest": "7ffa036653756ed14d084a816127826b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32988, "upload_time": "2017-09-04T16:22:41", "url": "https://files.pythonhosted.org/packages/68/d6/36441575737551d1427f19f943287beff57431cffdb90702d6b1e046047f/django-echoices-2.5.1.tar.gz" } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "95b4d926344dd33e263ab2dccdb7814a", "sha256": "6d78a51b1348a0399e7efacda92fdde6c19e48f35e3f12f80ab96ed3f70e382d" }, "downloads": -1, "filename": "django_echoices-2.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "95b4d926344dd33e263ab2dccdb7814a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24932, "upload_time": "2018-06-03T18:35:01", "url": "https://files.pythonhosted.org/packages/b7/74/f7ab340ef56156d2497f2ef308dd1ac9a709802dd819d0689e2948b4a05b/django_echoices-2.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d930e8dc598ec527625c5400810a369c", "sha256": "66d463361d38d89906fb3fd8849cac9d1eec9e8024356de88582d5f1b3885ac3" }, "downloads": -1, "filename": "django-echoices-2.6.0.tar.gz", "has_sig": false, "md5_digest": "d930e8dc598ec527625c5400810a369c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203000, "upload_time": "2018-06-03T18:35:05", "url": "https://files.pythonhosted.org/packages/bb/13/288254f98d4adc1ec5da93fe47e1edb76ec183ce639bc65c5f5720b84dee/django-echoices-2.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "95b4d926344dd33e263ab2dccdb7814a", "sha256": "6d78a51b1348a0399e7efacda92fdde6c19e48f35e3f12f80ab96ed3f70e382d" }, "downloads": -1, "filename": "django_echoices-2.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "95b4d926344dd33e263ab2dccdb7814a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24932, "upload_time": "2018-06-03T18:35:01", "url": "https://files.pythonhosted.org/packages/b7/74/f7ab340ef56156d2497f2ef308dd1ac9a709802dd819d0689e2948b4a05b/django_echoices-2.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d930e8dc598ec527625c5400810a369c", "sha256": "66d463361d38d89906fb3fd8849cac9d1eec9e8024356de88582d5f1b3885ac3" }, "downloads": -1, "filename": "django-echoices-2.6.0.tar.gz", "has_sig": false, "md5_digest": "d930e8dc598ec527625c5400810a369c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203000, "upload_time": "2018-06-03T18:35:05", "url": "https://files.pythonhosted.org/packages/bb/13/288254f98d4adc1ec5da93fe47e1edb76ec183ce639bc65c5f5720b84dee/django-echoices-2.6.0.tar.gz" } ] }