installdb: Use a dictionary for reverse dep info
Bumped cache version in order to avoid crashes with old caches.
This commit is contained in:
@@ -88,10 +88,12 @@ class InstallDB(lazydb.LazyDB):
|
|||||||
if deps:
|
if deps:
|
||||||
name = pkg.getTagData('Name')
|
name = pkg.getTagData('Name')
|
||||||
for dep in deps.tags("Dependency"):
|
for dep in deps.tags("Dependency"):
|
||||||
revdeps.setdefault(dep.firstChild().data(), set()).add((name, dep.toString()))
|
revdep = revdeps.setdefault(dep.firstChild().data(), {})
|
||||||
|
revdep[name] = dep.toString()
|
||||||
for anydep in deps.tags("AnyDependency"):
|
for anydep in deps.tags("AnyDependency"):
|
||||||
for dep in anydep.tags("Dependency"):
|
for dep in anydep.tags("Dependency"):
|
||||||
revdeps.setdefault(dep.firstChild().data(), set()).add((name, anydep.toString()))
|
revdep = revdeps.setdefault(dep.firstChild().data(), {})
|
||||||
|
revdep[name] = anydep.toString()
|
||||||
|
|
||||||
def __generate_revdeps(self):
|
def __generate_revdeps(self):
|
||||||
revdeps = {}
|
revdeps = {}
|
||||||
@@ -220,11 +222,11 @@ class InstallDB(lazydb.LazyDB):
|
|||||||
return self.__make_dependency(depStr)
|
return self.__make_dependency(depStr)
|
||||||
|
|
||||||
def get_rev_deps(self, name):
|
def get_rev_deps(self, name):
|
||||||
|
|
||||||
rev_deps = []
|
rev_deps = []
|
||||||
|
|
||||||
if self.rev_deps_db.has_key(name):
|
package_revdeps = self.rev_deps_db.get(name)
|
||||||
for pkg, dep in self.rev_deps_db[name]:
|
if package_revdeps:
|
||||||
|
for pkg, dep in package_revdeps.items():
|
||||||
dependency = self.__create_dependency(dep)
|
dependency = self.__create_dependency(dep)
|
||||||
rev_deps.append((pkg, dependency))
|
rev_deps.append((pkg, dependency))
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ class Singleton(object):
|
|||||||
|
|
||||||
class LazyDB(Singleton):
|
class LazyDB(Singleton):
|
||||||
|
|
||||||
cache_version = "2.2"
|
cache_version = "2.2.90"
|
||||||
|
|
||||||
def __init__(self, cacheable=False, cachedir=None):
|
def __init__(self, cacheable=False, cachedir=None):
|
||||||
if not self.__dict__.has_key("initialized"):
|
if not self.__dict__.has_key("initialized"):
|
||||||
|
|||||||
Reference in New Issue
Block a user