Changeset 912:40fd6425a5c2
- Timestamp:
- 09/12/08 17:28:43
(4 months ago)
- Author:
- Phil <phil@secdev.org>
- Message:
Improved CacheInstance? and NetCache?
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r911 |
r912 |
|
| 154 | 154 | dict.update(self, other) |
|---|
| 155 | 155 | self._timetable.update(other._timetable) |
|---|
| 156 | | def __repr__(self): |
|---|
| 157 | | if self.timeout is None: |
|---|
| 158 | | n = len(self) |
|---|
| 159 | | else: |
|---|
| 160 | | n = 0 |
|---|
| 161 | | t0 = time.time() |
|---|
| 162 | | for k,v in self.iteritems(): |
|---|
| 163 | | t = self._timetable[k] |
|---|
| 164 | | if t0-t <= self.timeout: |
|---|
| 165 | | n += 1 |
|---|
| 166 | | return "%s: %i valid items. Timeout=%rs" % (self.name, n, self.timeout) |
|---|
| | 156 | def iteritems(self): |
|---|
| | 157 | if self.timeout is None: |
|---|
| | 158 | return dict.iteritems(self) |
|---|
| | 159 | t0=time.time() |
|---|
| | 160 | return ((k,v) for (k,v) in dict.iteritems(self) if t0-self._timetable[k] < self.timeout) |
|---|
| | 161 | def iterkeys(self): |
|---|
| | 162 | if self.timeout is None: |
|---|
| | 163 | return dict.iterkeys(self) |
|---|
| | 164 | t0=time.time() |
|---|
| | 165 | return (k for k in dict.iterkeys(self) if t0-self._timetable[k] < self.timeout) |
|---|
| | 166 | def __iter__(self): |
|---|
| | 167 | return self.iterkeys() |
|---|
| | 168 | def itervalues(self): |
|---|
| | 169 | if self.timeout is None: |
|---|
| | 170 | return dict.itervalues(self) |
|---|
| | 171 | t0=time.time() |
|---|
| | 172 | return (v for (k,v) in dict.iteritems(self) if t0-self._timetable[k] < self.timeout) |
|---|
| | 173 | def items(self): |
|---|
| | 174 | if self.timeout is None: |
|---|
| | 175 | return dict.items(self) |
|---|
| | 176 | t0=time.time() |
|---|
| | 177 | return [(k,v) for (k,v) in dict.iteritems(self) if t0-self._timetable[k] < self.timeout] |
|---|
| | 178 | def keys(self): |
|---|
| | 179 | if self.timeout is None: |
|---|
| | 180 | return dict.keys(self) |
|---|
| | 181 | t0=time.time() |
|---|
| | 182 | return [k for k in dict.iterkeys(self) if t0-self._timetable[k] < self.timeout] |
|---|
| | 183 | def values(self): |
|---|
| | 184 | if self.timeout is None: |
|---|
| | 185 | return dict.values(self) |
|---|
| | 186 | t0=time.time() |
|---|
| | 187 | return [v for (k,v) in dict.iteritems(self) if t0-self._timetable[k] < self.timeout] |
|---|
| | 188 | def __len__(self): |
|---|
| | 189 | if self.timeout is None: |
|---|
| | 190 | return dict.__len__(self) |
|---|
| | 191 | return len(self.keys()) |
|---|
| | 192 | def summary(self): |
|---|
| | 193 | return "%s: %i valid items. Timeout=%rs" % (self.name, len(self), self.timeout) |
|---|
| | 194 | def __repr__(self): |
|---|
| | 195 | s = [] |
|---|
| | 196 | if self: |
|---|
| | 197 | mk = max(len(k) for k in self.iterkeys()) |
|---|
| | 198 | fmt = "%%-%is %%s" % (mk+1) |
|---|
| | 199 | for item in self.iteritems(): |
|---|
| | 200 | s.append(fmt % item) |
|---|
| | 201 | return "\n".join(s) |
|---|
| | 202 | |
|---|
| 167 | 203 | |
|---|
| 168 | 204 | |
|---|
| … | … | |
| 191 | 227 | c.flush() |
|---|
| 192 | 228 | def __repr__(self): |
|---|
| 193 | | return "\n".join(repr(c) for c in self._caches_list) |
|---|
| | 229 | return "\n".join(c.summary() for c in self._caches_list) |
|---|
| 194 | 230 | |
|---|
| 195 | 231 | |
|---|