Mercurial > p > roundup > code
view roundup/cgi/PageTemplates/MultiMapping.py @ 4994:868db43b302a
Remove anypy.sets_
The anypy.sets_ package module is no longer used in the roundup codebase
because python v2.4 is no longer supported. The anypy VERSION has been
bumped to 0.3 to reflect this removal, but the version has probably
never changed when other features were added in the past so this bump
may be pointless.
| author | John Kristensen <john@jerrykan.com> |
|---|---|
| date | Thu, 08 May 2014 18:44:29 +1000 |
| parents | 81cb4860ca75 |
| children | 35ea9b1efc14 |
line wrap: on
line source
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 self.stores], 0) def push(self, store): self.stores.append(store) def pop(self): return self.stores.pop() def items(self): l = [] for store in self.stores: l = l + store.items() return l
