Add a utility library for useful functions: add C-style pseudo-enum type
authorTJ <git@iam.tj>
Sat, 16 Nov 2013 13:49:46 +0000 (13:49 +0000)
committerTJ <git@iam.tj>
Sat, 16 Nov 2013 13:49:46 +0000 (13:49 +0000)
library.py [new file with mode: 0644]

diff --git a/library.py b/library.py
new file mode 100644 (file)
index 0000000..86a2deb
--- /dev/null
@@ -0,0 +1,8 @@
+def enum(*sequential, **named):
+ """ simulation of C=style enum
+     credit: Alec Thomas, http://stackoverflow.com/questions/36932/how-can-i-represent-an-enum-in-python
+ """
+ enums = dict(zip(sequential, range(len(sequential))), **named)
+ reverse = dict((value, key) for key, value in enums.iteritems())
+ enums['reverse_mapping'] = reverse
+ return type('Enum', (), enums)