[yum-cvs] yum/yum rpmsack.py,1.36,1.37
James Bowes
jbowes at linux.duke.edu
Sat Feb 17 23:16:21 UTC 2007
- Previous message: [yum-cvs] yum/test packagetests.py,1.5,1.6
- Next message: [yum-cvs] yum-metadata-parser db.c, 1.6, 1.7 db.h, 1.3, 1.4 package.h, 1.1.1.1, 1.2 sqlitecache.c, 1.8, 1.9 xml-parser.c, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv22987/yum
Modified Files:
rpmsack.py
Log Message:
Store hdr and idx in header_dict, to reduce the calls to header_from_index.
Also use header_dict's pkgtups for _get_pkglist.
Testing on my laptop shows depsolving for 'install kdelibs' to go from 7s to
5s, which is on par with old dep solving, with all headers on disk.
Index: rpmsack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/rpmsack.py,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- rpmsack.py 12 Feb 2007 22:01:41 -0000 1.36
+++ rpmsack.py 17 Feb 2007 23:16:19 -0000 1.37
@@ -20,6 +20,7 @@
from rpmUtils import miscutils
from rpmUtils.transaction import initReadOnlyTransaction
import misc
+import Errors
from packages import YumInstalledPackage
from packageSack import ListPackageSack, PackageSackBase
@@ -52,8 +53,11 @@
'''Getter for the pkglist property.
Returns a list of package tuples.
'''
- return [ self._hdr2pkgTuple(hdr)
- for hdr, idx in self._all_packages() ]
+ if not self._header_dict:
+ self._make_header_dict()
+
+ for pkgtup in self._header_dict.keys():
+ yield pkgtup
pkglist = property(_get_pkglist, None)
@@ -217,7 +221,9 @@
def _header_from_index(self, idx):
"""returns a package header having been given an index"""
-
+ warnings.warn('_header_from_index() will go away in a future version of Yum.\n',
+ Errors.FutureDeprecationWarning, stacklevel=2)
+
ts = self.readOnlyTS()
try:
mi = ts.dbMatch(0, idx)
@@ -237,7 +243,7 @@
for (hdr, idx) in self._all_packages():
pkgtup = self._hdr2pkgTuple(hdr)
- self._header_dict[pkgtup] = idx
+ self._header_dict[pkgtup] = (hdr, idx)
def _search(self, name=None, epoch=None, ver=None, rel=None, arch=None):
@@ -263,9 +269,8 @@
for pkgtup in self._header_dict.keys():
if match(pkgtup):
- idx = self._header_dict[pkgtup]
- for h in self._header_from_index(idx):
- yield h, pkgtup, idx
+ (hdr, idx) = self._header_dict[pkgtup]
+ yield hdr, pkgtup, idx
def _search2(self, name=None, epoch=None, version=None, release=None, arch=None):
'''Generator that yield (header, index) for matching packages
- Previous message: [yum-cvs] yum/test packagetests.py,1.5,1.6
- Next message: [yum-cvs] yum-metadata-parser db.c, 1.6, 1.7 db.h, 1.3, 1.4 package.h, 1.1.1.1, 1.2 sqlitecache.c, 1.8, 1.9 xml-parser.c, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Yum-cvs-commits
mailing list