Start encapsulting in dep object for helping anydep implementation
This commit is contained in:
+4
-6
@@ -38,15 +38,13 @@ class Dependency(pisi.relation.Relation):
|
|||||||
s += _(" release ") + self.release
|
s += _(" release ") + self.release
|
||||||
return s
|
return s
|
||||||
|
|
||||||
def dict_satisfies_dep(dict, depinfo):
|
def satisfied_by_dict_repo(dict_repo):
|
||||||
"""determine if a package in a dictionary satisfies given dependency spec"""
|
if not dict_repo.has_key(self.package):
|
||||||
pkg_name = depinfo.package
|
|
||||||
if not dict.has_key(pkg_name):
|
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
pkg = dict[pkg_name]
|
pkg = dict_repo[self.package]
|
||||||
(version, release) = (pkg.version, pkg.release)
|
(version, release) = (pkg.version, pkg.release)
|
||||||
return depinfo.satisfies_relation(version, release)
|
return self.satisfies_relation(version, release)
|
||||||
|
|
||||||
def installed_satisfies_dep(depinfo):
|
def installed_satisfies_dep(depinfo):
|
||||||
"""determine if a package in *repository* satisfies given
|
"""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
|
# is dependency satisfied among available packages
|
||||||
# or packages to be installed?
|
# or packages to be installed?
|
||||||
return dependency.installed_satisfies_dep(dep) \
|
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
|
# for this case, we have to determine the dependencies
|
||||||
# that aren't already satisfied and try to install them
|
# 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:
|
for x in B:
|
||||||
pkg = packagedb.get_package(x)
|
pkg = packagedb.get_package(x)
|
||||||
for dep in pkg.runtimeDependencies():
|
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():
|
if not dep.package in G_f.vertices():
|
||||||
Bp.add(str(dep.package))
|
Bp.add(str(dep.package))
|
||||||
G_f.add_dep(x, dep)
|
G_f.add_dep(x, dep)
|
||||||
|
|||||||
Reference in New Issue
Block a user