Add a utility library for useful functions: add C-style pseudo-enum type
[base2-runner.git] / library.py
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)