[Yum-devel] [PATCH] Minor opt. for allowedMultipleInstalls() and pkg.*_names callers

James Antill james at and.org
Wed Oct 28 21:38:57 UTC 2009


---
 yum/depsolve.py |   11 ++++++-----
 yum/packages.py |    9 ++++-----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/yum/depsolve.py b/yum/depsolve.py
index e5b3a42..4d3d5ca 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -188,13 +188,14 @@ class Depsolve(object):
         """takes a packageObject, returns 1 or 0 depending on if the package 
            should/can be installed multiple times with different vers
            like kernels and kernel modules, for example"""
-           
-        if po.name in self.conf.installonlypkgs:
+
+        iopkgs = set(self.conf.installonlypkgs)
+        if po.name in iopkgs:
             return True
         
-        provides = po.provides_names
-        if filter (lambda prov: prov in self.conf.installonlypkgs, provides):
-            return True
+        for prov in po.provides_names:
+            if prov in iopkgs:
+                return True
         
         return False
 
diff --git a/yum/packages.py b/yum/packages.py
index 71430fd..709e73e 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -454,11 +454,10 @@ class RpmBase(object):
         return self.files.keys()
 
     def returnPrcoNames(self, prcotype):
-        results = []
-        lists = self.returnPrco(prcotype)
-        for (name, flag, vertup) in lists:
-            results.append(name)
-        return results
+        if not hasattr(self, '_cache_prco_names_' + prcotype):
+            data = [n for (n, f, v) in self.returnPrco(prcotype)]
+            setattr(self, '_cache_prco_names_' + prcotype, data)
+        return getattr(self, '_cache_prco_names_' + prcotype)
 
     def getProvidesNames(self):
         warnings.warn('getProvidesNames() will go away in a future version of Yum.\n',
-- 
1.6.2.5



More information about the Yum-devel mailing list