The motivation for this patch is that documenting a single function adding enum-like capabilities would hopefully eliminate the numerous "enum" recipies already out there, each handling things a little different.
Raymond, is this kind of recipes worth adding to the 'collections' module? Maybe with the following form: def enum(*valuenames): return namedtuple('Enum', valuenames)(*range(len(valuenames)))
Thanks for asking. This should not go into the collections module. The concept makes more sense in statically compiled languages. In Python, we typically write something like "RED, ORANGE, YELLOW = range (3)" at the module level. That is faster and still allows prefixing using the module name (for example, re.MULTILINE).