Skip to main content
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())

Download files

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

Source Distribution

choose-2.0.0.tar.gz (2.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for choose-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f76cca6b36f2fe5410ad19af5820f13497cfc3e46dbf4cd93a91152371d36744
MD5 6fea7c15e1a4bfd24aaea00e33bdef23
BLAKE2b-256 f6cea8bb6d21461b34c0782307fa401389b90649b4ac4b2f23fbb926266cd438

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.0 This release

1 file

1.0.0

1 file

0.2.8

1 file

0.2.7

1 file

0.2.6

1 file

0.2.5

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2

1 file

0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page