[yum-cvs] yum/yum __init__.py,1.288,1.289

Seth Vidal skvidal at linux.duke.edu
Tue Feb 27 05:32:13 UTC 2007


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv3712/yum

Modified Files:
	__init__.py 
Log Message:

- small speed improvements to doPackageLists()
- some minor changes to _getSacks()


Index: __init__.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/__init__.py,v
retrieving revision 1.288
retrieving revision 1.289
diff -u -r1.288 -r1.289
--- __init__.py	23 Feb 2007 07:30:18 -0000	1.288
+++ __init__.py	27 Feb 2007 05:32:11 -0000	1.289
@@ -356,38 +356,40 @@
         
         if self._pkgSack:
             return self._pkgSack
-            
+        
         if self._pkgSack and thisrepo is None:
             self.verbose_logger.log(logginglevels.DEBUG_4,
                 'skipping reposetup, pkgsack exists')
             return self._pkgSack
-            
+        
         if thisrepo is None:
             repos = self.repos.listEnabled()
         else:
             repos = self.repos.findRepos(thisrepo)
-            
+        
         self.verbose_logger.debug('Setting up Package Sacks')
         if not archlist:
             archlist = rpmUtils.arch.getArchList()
-
+        
         archdict = {}
         for arch in archlist:
             archdict[arch] = 1
-
+        
         self.repos.getPackageSack().setCompatArchs(archdict)
         self.repos.populateSack(which=repos)
         self._pkgSack = self.repos.getPackageSack()
         
+        #FIXME - this is not very fast
         self.excludePackages()
-        self.pkgSack.excludeArchs(archlist)
-
+        self._pkgSack.excludeArchs(archlist)
+        
+        #FIXME - this could be faster, too.
         for repo in repos:
             self.excludePackages(repo)
             self.includePackages(repo)
         self.plugins.run('exclude')
-        self.pkgSack.buildIndexes()
-    
+        self._pkgSack.buildIndexes()
+
         return self._pkgSack
         
         
@@ -1003,7 +1005,6 @@
 
         # list all packages - those installed and available, don't 'think about it'
         if pkgnarrow == 'all': 
-            inst = self.rpmdb.simplePkgList()
             for po in self.rpmdb:
                 installed.append(po)
 
@@ -1011,10 +1012,10 @@
                 avail = self.pkgSack.returnPackages()
             else:
                 avail = self.pkgSack.returnNewestByNameArch()
-
+            
+            self.rpmdb._make_header_dict()
             for pkg in avail:
-                pkgtup = (pkg.name, pkg.arch, pkg.epoch, pkg.version, pkg.release)
-                if pkgtup not in inst:
+                if not self.rpmdb._header_dict.has_key(pkg.pkgtup):
                     available.append(pkg)
 
         # produce the updates list of tuples
@@ -1035,22 +1036,22 @@
 
         # installed only
         elif pkgnarrow == 'installed':
-            for po in self.rpmdb:
-                installed.append(po)
+            installed = self.rpmdb.returnPackages()
         
         # available in a repository
         elif pkgnarrow == 'available':
-            inst = self.rpmdb.simplePkgList()
+
             if self.conf.showdupesfromrepos:
                 avail = self.pkgSack.returnPackages()
             else:
                 avail = self.pkgSack.returnNewestByNameArch()
-
+            
+            self.rpmdb._make_header_dict()
             for pkg in avail:
-                pkgtup = (pkg.name, pkg.arch, pkg.epoch, pkg.version, pkg.release)
-                if pkgtup not in inst:
+                if not self.rpmdb._header_dict.has_key(pkg.pkgtup):
                     available.append(pkg)
 
+
         # not in a repo but installed
         elif pkgnarrow == 'extras':
             # we must compare the installed set versus the repo set




More information about the Yum-cvs-commits mailing list