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 -- http://mail.python.org/mailman/listinfo/python-list