[Yum-devel] [PATCH 4/5] Add pkgtupByKeyData, so we don't have to create package objects

James Antill james at and.org
Mon Aug 17 15:33:39 UTC 2009


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

diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 4d8ac0a..1edf2ab 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -725,6 +725,19 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
             pkgkeys.append(pkgKey)
         return self._key2pkg[repo][data['pkgKey']]
 
+    def _pkgtupByKeyData(self, repo, pkgKey, data):
+        """ Like _packageByKeyData() but we don't create the package, we just
+            return the pkgtup. """
+        if self._pkgExcludedRKD(repo, pkgKey, data):
+            return None
+        if repo not in self._key2pkg:
+            self._key2pkg[repo] = {}
+            self._pkgname2pkgkeys[repo] = {}
+        if data['pkgKey'] in self._key2pkg.get(repo, {}):
+            return self._key2pkg[repo][data['pkgKey']].pkgtup
+        return (data['name'], data['arch'],
+                data['epoch'], data['version'], data['release'])
+
     def _packagesByName(self, pkgname):
         """ Load all pkgnames from cache, with a given name. """
         ret = []
-- 
1.6.2.5



More information about the Yum-devel mailing list