packagedb: Accelerate get_replaces

This commit is contained in:
Fatih Aşıcı
2010-03-09 12:33:31 +00:00
parent df45476f7f
commit 7762204df5
+10 -4
View File
@@ -200,10 +200,16 @@ class PackageDB(lazydb.LazyDB):
pairs = {} pairs = {}
for pkg_name in self.rpdb.get_list_item(): for pkg_name in self.rpdb.get_list_item():
replaces = self.get_package(pkg_name).replaces xml = self.pdb.get_item(pkg_name, repo)
for r in replaces: package = piksemel.parseString(xml)
if pisi.replace.installed_package_replaced(r): replaces_tag = package.getTag("Replaces")
pairs.setdefault(r.package, []).append(pkg_name) if replaces_tag:
for node in replaces_tag.tags("Package"):
r = pisi.relation.Relation()
# XXX Is there a better way to do this?
r.decode(node, [])
if pisi.replace.installed_package_replaced(r):
pairs.setdefault(r.package, []).append(pkg_name)
return pairs return pairs