Start encapsulting in dep object for helping anydep implementation

This commit is contained in:
Faik Uygur
2009-04-16 13:48:57 +00:00
parent d2ff410242
commit 678e300333
2 changed files with 9 additions and 11 deletions
+7 -9
View File
@@ -38,15 +38,13 @@ class Dependency(pisi.relation.Relation):
s += _(" release ") + self.release
return s
def dict_satisfies_dep(dict, depinfo):
"""determine if a package in a dictionary satisfies given dependency spec"""
pkg_name = depinfo.package
if not dict.has_key(pkg_name):
return False
else:
pkg = dict[pkg_name]
(version, release) = (pkg.version, pkg.release)
return depinfo.satisfies_relation(version, release)
def satisfied_by_dict_repo(dict_repo):
if not dict_repo.has_key(self.package):
return False
else:
pkg = dict_repo[self.package]
(version, release) = (pkg.version, pkg.release)
return self.satisfies_relation(version, release)
def installed_satisfies_dep(depinfo):
"""determine if a package in *repository* satisfies given
+2 -2
View File
@@ -130,7 +130,7 @@ def install_pkg_files(package_URIs, reinstall = False):
# is dependency satisfied among available packages
# or packages to be installed?
return dependency.installed_satisfies_dep(dep) \
or dependency.dict_satisfies_dep(d_t, dep)
or dep.satisfied_by_dict_repo(d_t)
# for this case, we have to determine the dependencies
# that aren't already satisfied and try to install them
@@ -186,7 +186,7 @@ in the respective order to satisfy extra dependencies:
for x in B:
pkg = packagedb.get_package(x)
for dep in pkg.runtimeDependencies():
if dependency.dict_satisfies_dep(d_t, dep):
if dep.satisfied_by_dict_repo(d_t):
if not dep.package in G_f.vertices():
Bp.add(str(dep.package))
G_f.add_dep(x, dep)