Skip to main content

Choices on steroids

Project description

choose
========

Choices on steroids

.. image:: https://img.shields.io/pypi/v/choose.svg
:target: https://pypi.python.org/pypi/choose

.. image:: https://img.shields.io/travis/ulamlabs/choose.svg
:target: https://travis-ci.org/ulamlabs/choose

.. image:: https://codecov.io/gh/ulamlabs/choose/branch/master/graph/badge.svg
:target: https://codecov.io/gh/ulamlabs/choose


Supported versions
================

- Python 2 and 3 support


How to install
==========

.. code-block:: bash

pip install choose


Basic usage:
===========

.. code-block:: python

>>> class Types(choose.Choices):
>>> BAR = choose.Choice('foo_bar', 'Foo Bar')
>>> BAZ = choose.Choice('foo_baz', 'Foo Baz')
>>> Types.BAR
'foo_bar'
>>> Types.BAR.text
'Foo Bar'
>>> Types.items()
(('foo_bar', 'Foo Bar'), ('foo_baz', 'Foo Baz'))
>>> Types.keys()
('foo_bar', 'foo_baz')
>>> Types.values()
('Foo Bar', 'Foo Baz')
>>> 'foo_bar' in Types
True

Extended usage:
===============

.. code-block:: python

>>> class Types2(choose.Choices):
>>> BAR = choose.Choice('foo_bar', 'Foo Bar', default=False)
>>> BAZ = choose.Choice('foo_baz', 'Foo Baz', default=False)
>>> FOO = choose.Choice('foo_foo', 'Foo Foo', default=True)
>>>
>>> @classmethod
>>> def get_default(cls):
>>> return next(
>>> (item for item in cls.keys() if item.opts.default is True),
>>> None,
>>> )
>>>
>>> Types2.BAR.opts.default
False
>>> Types2.BAR.opts.not_existing_attr is None
True
>>> 'foo_bar' == Types2.get_default()
False
>>> Types2.BAR == Types2.get_default()
False
>>> 'foo_foo' == Types2.get_default()
True
>>> Types2.FOO == Types2.get_default()
True

Usage in Django:
================

.. code-block:: python

class AModel(models.Model):
class AChoices(choose.Choices):
X = choose.Choice('x', 'X')
Y = choose.Choice('y', 'Y')

choice = models.CharField(max_length=63, choices=AChoices.items())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

choose-1.0.0.tar.gz (3.2 kB view details)

Uploaded Source

File details

Details for the file choose-1.0.0.tar.gz.

File metadata

  • Download URL: choose-1.0.0.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for choose-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9bc4a06480b20fc8a72373b721598097fd84e4ef53f6068a9343ec37ab04da8c
MD5 13590ef2688808dc15eeaf2198c4cb9a
BLAKE2b-256 708e131082d324a4a4dc5a910a547bfca136850ddaf489fee6d24a2be07bd5aa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page