diff options
author | Sylvain <syt@logilab.fr> | 2007-07-13 17:38:58 +0200 |
---|---|---|
committer | Sylvain <syt@logilab.fr> | 2007-07-13 17:38:58 +0200 |
commit | 7c9654aed91856da351cb1978b9eb732c270fbc8 (patch) | |
tree | 04c6a7f832e697e7b90ee9273cd67972d3589218 /cache.py | |
parent | d63043db9a8c90481f2f10e8f4cf7519fb383cf7 (diff) | |
download | logilab-common-7c9654aed91856da351cb1978b9eb732c270fbc8.tar.gz |
pop() implementation
Diffstat (limited to 'cache.py')
-rw-r--r-- | cache.py | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -17,8 +17,7 @@ deletion of entries. """ -__revision__ = '$Id: cache.py,v 1.8 2003-10-31 14:18:31 syt Exp $' - +_marker = object() class Cache: """ a dictionnary like cache @@ -78,6 +77,13 @@ class Cache: del self.data[key] self._usage.remove(key) + def pop(self, value, default=_marker): + if value in self.data: + self._usage.remove(value) + if default is _marker: + return self.data.pop(value) + return self.data.pop(value, default) + def clear(self): self.data.clear() self._usage = [] @@ -93,5 +99,4 @@ class Cache: def has_key(self, key): return self.data.has_key(key) - |