Skip to main content

Choices on steroids

Project description

# choose
Choices on steroids

[![Build](https://api.travis-ci.org/krotkiewicz/choose.svg)](https://travis-ci.org/krotkiewicz/choose)

Basic usage:

```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:

```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:

```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-0.2.5.tar.gz (2.1 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for choose-0.2.5.tar.gz
Algorithm Hash digest
SHA256 365f4de2b664e5c5eef75674f401df7c2d2dce75f5166e2d7a398f45a50e7545
MD5 b5fbdad3e11d863043875efa3fc44a40
BLAKE2b-256 fd14108729fa071401c33db4b06b0373f70cd92097bb2212330ae343d263c36d

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