[llvm-commits] [zorg] r126492 - /zorg/trunk/llvmlab/llvmlab/util.py
Daniel Dunbar
daniel at zuster.org
Fri Feb 25 08:45:24 PST 2011
Author: ddunbar
Date: Fri Feb 25 10:45:24 2011
New Revision: 126492
URL: http://llvm.org/viewvc/llvm-project?rev=126492&view=rev
Log:
llvmlab.util: Add multidict helper class.
Modified:
zorg/trunk/llvmlab/llvmlab/util.py
Modified: zorg/trunk/llvmlab/llvmlab/util.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/llvmlab/llvmlab/util.py?rev=126492&r1=126491&r2=126492&view=diff
==============================================================================
--- zorg/trunk/llvmlab/llvmlab/util.py (original)
+++ zorg/trunk/llvmlab/llvmlab/util.py Fri Feb 25 10:45:24 2011
@@ -1,5 +1,7 @@
import colorsys
+__all__ = []
+
class simple_repr_mixin(object):
def __repr__(self):
return "%s(%s)" % (self.__class__.__name__,
@@ -17,4 +19,28 @@
v = 0.8
return colorsys.hsv_to_rgb(h,0.9+s*.1,v)
-__all__ = []
+class multidict(object):
+ def __init__(self, elts=()):
+ self.data = {}
+ for key,value in elts:
+ self[key] = value
+
+ def __contains__(self, item):
+ return item in self.data
+ def __getitem__(self, item):
+ return self.data[item]
+ def __setitem__(self, key, value):
+ if key in self.data:
+ self.data[key].append(value)
+ else:
+ self.data[key] = [value]
+ def items(self):
+ return self.data.items()
+ def values(self):
+ return self.data.values()
+ def keys(self):
+ return self.data.keys()
+ def __len__(self):
+ return len(self.data)
+ def get(self, key, default=None):
+ return self.data.get(key, default)
More information about the llvm-commits
mailing list