Start encapsulting in dep object for helping anydep implementation
This commit is contained in:
+7
-9
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user