commit db7635abc7878d873a989c35e7aea413ecde2f52 Author: Damian Johnson atagar@torproject.org Date: Sun Nov 13 14:38:56 2011 -0800
Revising enum docs and methods
Minor changes including... - standard header documentation - replacing the keys() method with making enums iterable (functionally the same, but a little nicer for callers) - dropping the alternative LEnum - I've never used it --- stem/util/enum.py | 39 +++++++++++++++------------------------ 1 files changed, 15 insertions(+), 24 deletions(-)
diff --git a/stem/util/enum.py b/stem/util/enum.py index d7745ec..6ce54d0 100644 --- a/stem/util/enum.py +++ b/stem/util/enum.py @@ -5,7 +5,7 @@ constructed as simple type listings, ie:
insects.ANT
'Ant'
insects.values()
-['Ant', 'Wasp', 'Ladybug', 'Firefly'] +('Ant', 'Wasp', 'Ladybug', 'Firefly')
with overwritten string counterparts:
pets = Enum(("DOG", "Skippy"), "CAT", ("FISH", "Nemo"))
@@ -14,10 +14,13 @@ with overwritten string counterparts:
pets.CAT
'Cat'
-or with entirely custom string components as an unordered enum with: ->>> pets = LEnum(DOG="Skippy", CAT="Kitty", FISH="Nemo") ->>> pets.CAT -'Kitty' +to_camel_case - converts a string to camel case +Enum - Provides a basic, ordered enumeration. + |- values - string representation of our enums + |- index_of - indice of an enum value + |- next - provides the enum after a given enum value + |- previous - provides the enum before a given value + +- __iter__ - iterator over our enum keys """
def to_camel_case(label, word_divider = " "): @@ -62,16 +65,6 @@ class Enum: self._keys = tuple(keys) self._values = tuple(values)
- def keys(self): - """ - Provides an ordered listing of the enumeration keys in this set. - - Returns: - tuple with our enum keys - """ - - return self._keys - def values(self): """ Provides an ordered listing of the enumerations in this set. @@ -137,14 +130,12 @@ class Enum:
prev_index = (self._values.index(value) - 1) % len(self._values) return self._values[prev_index] - -class LEnum(Enum): - """ - Enumeration that accepts custom string mappings. - """
- def __init__(self, **args): - Enum.__init__(self) - self.__dict__.update(args) - self._values = sorted(args.values()) + def __iter__(self): + """ + Provides an ordered listing of the enumeration keys in this set. + """ + + for entry in self._keys: + yield entry