Package horizons :: Package ext :: Module enum
[hide private]
[frames] | no frames]

Module enum

source code

Robust enumerated type support in Python.

This package provides a module for robust enumerations in Python.

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

   >>> from enum import Enum
   >>> Colors = 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]
   >>> shirt_color = Colors.green

The values are constants that can be compared only with values from the same enumeration; comparison with other values will invoke Python's fallback comparisons:

   >>> pizza_night == Weekdays.fri
   True
   >>> shirt_color > Colors.red
   True
   >>> shirt_color == "green"
   False

Each value from an enumeration exports its sequence index as an integer, and can be coerced to a simple string matching the original arguments used to create the enumeration:

   >>> str(pizza_night)
   'fri'
   >>> shirt_color.index
   2

Version: 0.4.4

Date: 2009-08-26

Author: Ben Finney <ben+python@benfinney.id.au>

Copyright: Copyright \xc2\xa9 2007\xe2\x80\x932009 Ben Finney

License: Choice of GPL or Python license

Classes [hide private]
  EnumException
Base class for all exceptions in this module.
  EnumEmptyError
Raised when attempting to create an empty enumeration.
  EnumBadKeyError
Raised when creating an Enum with non-string keys.
  EnumImmutableError
Raised when attempting to modify an Enum.
  EnumValue
A specific value of an enumerated type.
  Enum
Enumerated type.
Functions [hide private]
 
_comparator(func)
Decorator for EnumValue rich comparison methods.
source code
Variables [hide private]
  __author_name__ = 'Ben Finney'
  __author_email__ = 'ben+python@benfinney.id.au'
  _copyright_year_begin = '2007'
  _copyright_year_latest = '2009'
  _copyright_year_range = '2007\xe2\x80\x932009'
  __url__ = 'http://pypi.python.org/pypi/enum/'
  __package__ = None
hash(x)