Simplify update_eclasses() a little. (trunk r7861)
authorZac Medico <zmedico@gentoo.org>
Thu, 27 Sep 2007 20:59:42 +0000 (20:59 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 27 Sep 2007 20:59:42 +0000 (20:59 -0000)
svn path=/main/branches/2.1.2/; revision=7862

pym/eclass_cache.py

index 2915bcf39e6172c0b1e9544286224bed1e1dbc3b..ede081d9c2257b6118c076717fd914428fdc0e67 100644 (file)
@@ -42,23 +42,20 @@ class cache:
                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: