Mercurial > p > roundup > code
view roundup/cgi/PageTemplates/MultiMapping.py @ 7683:b04e222501b8
fix: rest - set self.start from client.start
Make elasped time include time since client was initialized.
So elapsed is as close as we can get to an overall request service
time.
May need to add rest_elapsed or some other subsystem based timers as
we try to track a possible performance regression in 2.3.0.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 25 Oct 2023 13:12:18 -0400 |
| parents | 23b8e6067f7c |
| children |
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 key in store: return store[key] raise KeyError(key) _marker = [] def get(self, key, default=_marker): for store in self.stores: if key in store: return store[key] if default is self._marker: raise KeyError(key) return default def __len__(self): return sum([len(x) for x in self.stores]) 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 + list(store.items()) return l
