Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

enum 0.3: Enumerations in Python

1 view
Skip to first unread message

Ben Finney

unread,
Nov 25, 2005, 9:36:59 PM11/25/05
to
Howdy all,

I've uploaded enum 0.3 to the Cheeseshop.

<URL:http://cheeseshop.python.org/pypi/enum/>

Enumerations are now sequences, iterable (as before) *and* indexable::

>>> from enum import Enum
>>> Weekdays = Enum('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat')
>>> pizza_night = Weekdays[4]
>>> print pizza_night == Weekdays.thu
True

Since the values of an enumeration are directly reflected in the
values and attributes, Enum instances are immutable to preserve this
relationship::

>>> Weekdays.foo = object()
[...]
enum.EnumImmutableError: Enumeration does not allow modification
>>> Weekdays.mon = Weekdays.fri
[...]
enum.EnumImmutableError: Enumeration does not allow modification
>>> Weekdays[4] = object()
[...]
enum.EnumImmutableError: Enumeration does not allow modification


The package's long description:

"""This package provides a class for robust enumerations in Python.

An enumeration object is created with a sequence of string
arguments to the Enum() function::

>>> from enum import Enum
>>> Colours = Enum('red', 'blue', 'green')
>>> Weekdays = Enum('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun')

The return value is an immutable sequence object with a value for each
of the string arguments. Each value is also available as an attribute
named from the corresponding string argument::

>>> pizza_night = Weekdays[4]
>>> pixel_colour = Colours.blue

The values are constants that can be compared only with other values
from the same enumeration, but can be coerced to simple strings
matching the original arguments to Enum().

The design is based in part on Zoran Isailovski's recipe, "First
Class Enums in Python" in the ASPN Python Cookbook
<URL:http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/413486>.
"""

--
\ "I bought some batteries, but they weren't included; so I had |
`\ to buy them again." -- Steven Wright |
_o__) |
Ben Finney

0 new messages