[yum-cvs] 2 commits - yum/packageSack.py yum/sqlitesack.py

James Antill james at linux.duke.edu
Wed Dec 12 15:50:59 UTC 2007


 yum/packageSack.py |   13 +++++++++++--
 yum/sqlitesack.py  |    2 ++
 2 files changed, 13 insertions(+), 2 deletions(-)

New commits:
commit 32b7e9139243b2b11ec53c887d76a09869d85fc6
Merge: d86112d... c1f0b3b...
Author: James Antill <james at and.org>
Date:   Wed Dec 12 10:50:57 2007 -0500

    Merge branch 'master' of ssh://login.linux.duke.edu/home/groups/yum/git/yum
    
    * 'master' of ssh://login.linux.duke.edu/home/groups/yum/git/yum:
      added at 'install kernel' testcase to test a current problem with 'install kernel' installing old kernels
      cleanup skip broken code and fixes some issues

commit d86112d643d62d9e93d99a6ee2142e205192b003
Author: James Antill <james at and.org>
Date:   Wed Dec 12 10:50:42 2007 -0500

    Faster __len__ method for MetaSack, should fix speed regression with updates

diff --git a/yum/packageSack.py b/yum/packageSack.py
index 6723d70..d2b2d4b 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -30,7 +30,7 @@ class PackageSackBase(object):
         self.added = {}
 
     def __len__(self):
-        return len(self.simplePkgList())
+        return len(self.returnPackages())
         
     def __iter__(self):
         ret = self.returnPackages()
@@ -220,6 +220,12 @@ class MetaSack(PackageSackBase):
         self.sacks = {}
         self.compatarchs = None
 
+    def __len__(self):
+        ret = 0
+        for sack in self.sacks.values():
+            ret += len(sack)
+        return ret
+
     def addSack(self, repoid, sack):
         """Adds a repository's packageSack to this MetaSack."""
         self.sacks[repoid] = sack
@@ -434,7 +440,10 @@ class PackageSack(PackageSackBase):
         
         
     def __len__(self):
-        return len(self.simplePkgList())
+        ret = 0
+        for repo in self.pkgsByRepo.keys():
+            ret += len(self.pkgsByRepo[repo])
+        return ret
     
 
     def _checkIndexes(self, failure='error'):
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index cd842b1..a8c7c5a 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -232,6 +232,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
 
     @catchSqliteException
     def __len__(self):
+        if hasattr(self, 'pkgobjlist'):
+            return len(self.pkgobjlist)
         for (rep,cache) in self.primarydb.items():
             cur = cache.cursor()
             executeSQL(cur, "select count(pkgId) from packages")



More information about the Yum-cvs-commits mailing list