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.4.tar.gz (2.0 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for choose-0.2.4.tar.gz
Algorithm Hash digest
SHA256 3d42463437bfdfb3a1a4f6465bb4757d5831ce73ba7597d7f5fdb89009e48d02
MD5 42b0b5dbcb2ac3d0dc9716789bcb4304
BLAKE2b-256 c60580449336e7d9c358e557c4e472c153886df0e4ff11b0791ca44bc866a3ce

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