From d6da2c8d98a333d45de52f91adc576856977f4f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20Silkeb=C3=A6kken?= Date: Sun, 27 Jan 2013 17:40:02 +0100 Subject: [PATCH] Reset memoize cache if unable to unpickle This is usually due to the cache being stored with Python 3 and then attempted to being loaded in Python 2 which raises a ValueError. Closes #138. --- powerline/lib/memoize.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/powerline/lib/memoize.py b/powerline/lib/memoize.py index 33be7d7d..00dbeef8 100644 --- a/powerline/lib/memoize.py +++ b/powerline/lib/memoize.py @@ -29,8 +29,8 @@ class memoize(object): try: with open(self.persistent_file, 'rb') as fileobj: self._cache = pickle.load(fileobj) - except (IOError, EOFError): - pass + except (IOError, EOFError, ValueError): + self._cache = {} cached = self._cache.get(key, None) if cached is None or time.time() - cached['time'] > self.timeout: cached = self._cache[key] = {