diff options
Diffstat (limited to 'pym/portage/eclass_cache.py')
-rw-r--r-- | pym/portage/eclass_cache.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/pym/portage/eclass_cache.py b/pym/portage/eclass_cache.py index adfe69ae9..4a934f16f 100644 --- a/pym/portage/eclass_cache.py +++ b/pym/portage/eclass_cache.py @@ -9,7 +9,7 @@ import sys import operator from portage.util import normalize_path import errno -from portage.exception import PermissionDenied +from portage.exception import FileNotFound, PermissionDenied from portage import os from portage import checksum @@ -30,7 +30,12 @@ class hashed_path(object): # the straight c api. # thus use the defacto python compatibility work around; # access via index, which guarantees you get the raw long. - self.mtime = obj = os.stat(self.location)[stat.ST_MTIME] + try: + self.mtime = obj = os.stat(self.location)[stat.ST_MTIME] + except OSError as e: + if e.errno in (errno.ENOENT, errno.ESTALE): + raise FileNotFound(self.location) + raise return obj if not attr.islower(): # we don't care to allow .mD5 as an alias for .md5 @@ -113,7 +118,7 @@ class cache(object): obj.eclass_dir = x try: mtime = obj.mtime - except OSError: + except FileNotFound: continue ys=y[:-eclass_len] if x == self._master_eclass_root: |