diff roundup/cgi/MultiMapping.py @ 985:55ab0c5b49f9

New CGI interface support
author Richard Jones <richard@users.sourceforge.net>
date Fri, 30 Aug 2002 08:28:44 +0000
parents
children 53c600091f17
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/roundup/cgi/MultiMapping.py	Fri Aug 30 08:28:44 2002 +0000
@@ -0,0 +1,25 @@
+import operator
+
+class MultiMapping:
+    def __init__(self, *stores):
+        self.stores = list(stores)
+    def __getitem__(self, key):
+        for store in self.stores:
+            if store.has_key(key):
+                return store[key]
+        raise KeyError, key
+    _marker = []
+    def get(self, key, default=_marker):
+        for store in self.stores:
+            if store.has_key(key):
+                return store[key]
+        if default is self._marker:
+            raise KeyError, key
+        return default
+    def __len__(self):
+        return reduce(operator.add, [len(x) for x in stores], 0)
+    def push(self, store):
+        self.stores.append(store)
+    def pop(self):
+        return self.stores.pop()
+

Roundup Issue Tracker: http://roundup-tracker.org/