diff options
Diffstat (limited to 'giscanner/cachestore.py')
-rw-r--r-- | giscanner/cachestore.py | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/giscanner/cachestore.py b/giscanner/cachestore.py index 44e3b04c..ad4c7a36 100644 --- a/giscanner/cachestore.py +++ b/giscanner/cachestore.py @@ -31,6 +31,7 @@ import giscanner _CACHE_VERSION_FILENAME = '.cache-version' + def _get_versionhash(): toplevel = os.path.dirname(giscanner.__file__) # Use pyc instead of py to avoid extra IO @@ -40,6 +41,7 @@ def _get_versionhash(): mtimes = (str(os.stat(source).st_mtime) for source in sources) return hashlib.sha1(''.join(mtimes)).hexdigest() + def _get_cachedir(): if 'GI_SCANNER_DISABLE_CACHE' in os.environ: return None @@ -73,7 +75,7 @@ class CacheStore(object): def __init__(self): try: self._directory = _get_cachedir() - except OSError, e: + except OSError as e: if e.errno != errno.EPERM: raise self._directory = None @@ -88,7 +90,7 @@ class CacheStore(object): version = os.path.join(self._directory, _CACHE_VERSION_FILENAME) try: cache_hash = open(version).read() - except IOError, e: + except IOError as e: # File does not exist if e.errno == errno.ENOENT: cache_hash = 0 @@ -101,7 +103,7 @@ class CacheStore(object): self._clean() try: fp = open(version, 'w') - except IOError, e: + except IOError as e: # Permission denied if e.errno == errno.EACCES: return @@ -126,13 +128,13 @@ class CacheStore(object): def _remove_filename(self, filename): try: os.unlink(filename) - except IOError, e: + except IOError as e: # Permission denied if e.errno == errno.EACCES: return else: raise - except OSError, e: + except OSError as e: # File does not exist if e.errno == errno.ENOENT: return @@ -150,14 +152,13 @@ class CacheStore(object): if store_filename is None: return - if (os.path.exists(store_filename) and - self._cache_is_valid(store_filename, filename)): + if (os.path.exists(store_filename) and self._cache_is_valid(store_filename, filename)): return None tmp_fd, tmp_filename = tempfile.mkstemp(prefix='g-ir-scanner-cache-') try: cPickle.dump(data, os.fdopen(tmp_fd, 'w')) - except IOError, e: + except IOError as e: # No space left on device if e.errno == errno.ENOSPC: self._remove_filename(tmp_filename) @@ -167,7 +168,7 @@ class CacheStore(object): try: shutil.move(tmp_filename, store_filename) - except IOError, e: + except IOError as e: # Permission denied if e.errno == errno.EACCES: self._remove_filename(tmp_filename) @@ -180,7 +181,7 @@ class CacheStore(object): return try: fd = open(store_filename) - except IOError, e: + except IOError as e: if e.errno == errno.ENOENT: return None else: |