[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