Just for completeness:
There is a patch removing the old - now unnecessary pkgId based exclude
mechanism. We agreed on IRC that we cannot remove it right now as it is not
as private as it probably should.
Florian
>From 6bcdda926901f455627c317398f6a5a6109bf6f7 Mon Sep 17 00:00:00 2001
From: Florian Festi <[EMAIL PROTECTED]>
Date: Thu, 13 Dec 2007 17:53:01 +0100
Subject: [PATCH] Remove old excluded mechanism from SqliteSack
---
yum/sqlitesack.py | 22 +++-------------------
1 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 78797cc..9394862 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -224,7 +224,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.primarydb = {}
self.filelistsdb = {}
self.otherdb = {}
- self.excludes = {}
self._excludes = set() # of (repo, pkgKey)
self._search_cache = {
'provides' : { },
@@ -235,14 +234,12 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
@catchSqliteException
def __len__(self):
exclude_num = 0
- for repo in self.excludes:
- exclude_num += len(self.excludes[repo])
if hasattr(self, 'pkgobjlist'):
return len(self.pkgobjlist) - exclude_num
for (rep,cache) in self.primarydb.items():
cur = cache.cursor() # Does all repos, just using a cache
executeSQL(cur, "select count(pkgId) from packages")
- return cur.fetchone()[0] - exclude_num
+ return cur.fetchone()[0] - len(self._excludes)
@catchSqliteException
def close(self):
@@ -253,7 +250,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self.primarydb = {}
self.filelistsdb = {}
self.otherdb = {}
- self.excludes = {}
+ self._excludes.clear()
self._search_cache = {
'provides' : { },
'requires' : { },
@@ -275,18 +272,8 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
# Because we don't want to remove a package from the database we just
# add it to the exclude list
def delPackage(self, obj):
- if not self.excludes.has_key(obj.repo):
- self.excludes[obj.repo] = {}
- self.excludes[obj.repo][obj.pkgId] = 1
self._excludes.add( (obj.repo, obj.pkgKey) )
- def _excluded(self, repo, pkgId):
- if self.excludes.has_key(repo):
- if self.excludes[repo].has_key(pkgId):
- return True
-
- return False
-
def _pkgKeyExcluded(self, repo, pkgKey):
return (repo, pkgKey) in self._excludes
@@ -310,9 +297,6 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
else:
self.added[repo] = []
- if not self.excludes.has_key(repo):
- self.excludes[repo] = {}
-
if datatype == 'metadata':
self.primarydb[repo] = dataobj
elif datatype == 'filelists':
@@ -784,7 +768,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
self._buildPkgObjList(repoid)
for po in self.pkgobjlist:
- if self._excluded(po.repo, po.pkgId):
+ if self._pkgExcluded(po):
continue
returnList.append(po)
--
1.5.3.3
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel