[yum-commits] Branch 'yum-3_2_X' - yum/packageSack.py

James Antill james at osuosl.org
Mon Mar 2 19:27:40 UTC 2009


 yum/packageSack.py |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

New commits:
commit 156db879ce62f8f974ea03d83cee575c4411820d
Author: Ville Skytt? <ville.skytta at iki.fi>
Date:   Mon Mar 2 14:19:18 2009 -0500

    Speed up returnLeafNodes(), edited by James Antill.

diff --git a/yum/packageSack.py b/yum/packageSack.py
index 997f4fb..bad2e62 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -234,6 +234,18 @@ class PackageSackBase(object):
         """returns a list of package objects that are not required by
            any other package in this repository"""
            
+        def _return_all_provides(po):
+            """ Return all the provides, via. yield. """
+            # These are done one by one, so that we get lazy loading
+            for prov in po.provides_names:
+                yield prov
+            for prov in po.filelist:
+                yield prov
+            for prov in po.dirlist:
+                yield prov
+            for prov in po.ghostlist:
+                yield prov
+
         # fixme - maybe cache this list?
         
         req = {}
@@ -250,7 +262,7 @@ class PackageSackBase(object):
      
         for po in self.returnPackages(repoid=repoid):
             preq = 0
-            for p in po.provides_names + po.filelist + po.dirlist + po.ghostlist:
+            for p in _return_all_provides(po):
                 if req.has_key(p):
                     # Don't count a package that provides its require
                     s = req[p]


More information about the Yum-commits mailing list