From 11070fe3c6e7f0f7feaa935a181250a2d2feb5cb Mon Sep 17 00:00:00 2001 From: Bertrand Bordage Date: Tue, 21 Oct 2014 13:43:08 +0200 Subject: [PATCH] Removes a useless cache.delete_many call thanks to a clarification. --- cachalot/transaction.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/cachalot/transaction.py b/cachalot/transaction.py index 9859bc7..9b01e4f 100644 --- a/cachalot/transaction.py +++ b/cachalot/transaction.py @@ -9,41 +9,40 @@ class AtomicCache(dict): def __init__(self, parent_cache): super(AtomicCache, self).__init__() self.parent_cache = parent_cache - self.to_be_deleted = set() + self.deleted = set() self.to_be_invalidated = set() def get(self, k, default=None): - if k in self.to_be_deleted: + if k in self.deleted: return default if k in self: return self[k] return self.parent_cache.get(k, default) def set(self, k, v): - if k in self.to_be_deleted: - self.to_be_deleted.remove(k) + if k in self.deleted: + self.deleted.remove(k) self[k] = v - def delete(self, k): - self.to_be_deleted.add(k) - def get_many(self, keys): - data = dict([(k, self[k]) for k in keys if - k in self and k not in self.to_be_deleted]) + data = dict([(k, self[k]) for k in keys if k in self]) missing_keys = set(keys) + missing_keys.difference_update(self.deleted) missing_keys.difference_update(data) data.update(self.parent_cache.get_many(missing_keys)) return data def set_many(self, data): - self.to_be_deleted.difference_update(data) + self.deleted.difference_update(data) self.update(data) def delete_many(self, keys): - self.to_be_deleted.update(keys) + self.deleted.update(keys) + for k in keys: + if k in self: + del self[k] def commit(self): _invalidate_tables_cache_keys(self.parent_cache, list(self.to_be_invalidated)) self.parent_cache.set_many(self) - self.parent_cache.delete_many(self.to_be_deleted)