3 # From the Python Cookbook, downloaded from http://code.activestate.com/recipes/67107/
5 import types, string, exceptions
7 class EnumException(exceptions.Exception):
11 def __init__(self, name, enumList):
19 if type(x) == types.TupleType:
21 if type(x) != types.StringType:
22 raise EnumException, "enum name is not a string: " + x
23 if type(i) != types.IntType:
24 raise EnumException, "enum value is not an integer: " + i
26 raise EnumException, "enum name is not unique: " + x
28 raise EnumException, "enum value is not unique for " + x
30 uniqueValues.append(i)
35 self.reverseLookup = reverseLookup
36 def __getattr__(self, attr):
37 if not self.lookup.has_key(attr):
39 return self.lookup[attr]
40 def whatis(self, value):
41 return self.reverseLookup[value]