Mercurial > p > roundup > code
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() +
