From 9525ec85063786716ab61a57dd69f556586792d3 Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Sun, 10 Jul 2011 05:52:52 -0700 Subject: Added keys, values, and items to allow iteration --- pylru.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'pylru.py') diff --git a/pylru.py b/pylru.py index 8015f37..55e4b67 100644 --- a/pylru.py +++ b/pylru.py @@ -178,7 +178,23 @@ class lrucache(object): self.mtf(node) self.head = node.next + def items(self): + # return the (key, value) pairs (from most recent to least) + # without modifying the cache order + return zip(self.keys(), self.values()) + + def keys(self): + + # return the keys (from most recent to least) in the cache + # does not modify the cache order + return self.table.keys() + + def values(self): + + # return the values in the cache (from most recent to least) + # does not modify the cache order + return [node.obj for node in self.table.values()] def size(self, size=None): @@ -324,7 +340,6 @@ class lruwrap(object): except KeyError: pass - def sync(self): if self.writeback: for key in self.dirty: -- cgit v1.2.1