diff options
-rw-r--r-- | pym/portage/eclass_cache.py | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/pym/portage/eclass_cache.py b/pym/portage/eclass_cache.py index 8fac8aec4..806505757 100644 --- a/pym/portage/eclass_cache.py +++ b/pym/portage/eclass_cache.py @@ -42,23 +42,20 @@ class cache(object): self.eclasses = {} self._eclass_locations = {} eclass_len = len(".eclass") + ignored_listdir_errnos = (errno.ENOENT, errno.ENOTDIR) for x in [normalize_path(os.path.join(y,"eclass")) for y in self.porttrees]: - eclass_filenames = [] try: - for y in os.listdir(x): - if y.endswith(".eclass"): - eclass_filenames.append(y) + eclass_filenames = os.listdir(x) except OSError, e: - if e.errno == errno.ENOENT: - del e - continue - elif e.errno == errno.ENOTDIR: + if e.errno in ignored_listdir_errnos: del e continue elif e.errno == PermissionDenied.errno: raise PermissionDenied(x) raise for y in eclass_filenames: + if not y.endswith(".eclass"): + continue try: mtime = long(os.stat(os.path.join(x, y)).st_mtime) except OSError: |