summaryrefslogtreecommitdiff
path: root/apt
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2009-08-18 13:26:47 +0200
committerJulian Andres Klode <jak@debian.org>2009-08-18 13:26:47 +0200
commitaae9d9c7c07c7c078e11d2d8affc88d9eaa51e11 (patch)
tree76c9ba685147ada9a2e4d0dba280ddd571ad1055 /apt
parentc4e78b09ceeabeb7eee6ce4d7d999be674c4e413 (diff)
downloadpython-apt-aae9d9c7c07c7c078e11d2d8affc88d9eaa51e11.tar.gz
apt/package.py: Introduce Version.get_dependencies().
Introduce Version.get_dependencies() which takes one or more types of dependencies and returns a list of Dependency objects. This prevents code duplication in Version.dependencies and Version.recommends and allows to access other types as well.
Diffstat (limited to 'apt')
-rw-r--r--apt/package.py31
1 files changed, 12 insertions, 19 deletions
diff --git a/apt/package.py b/apt/package.py
index 8d44ef02..7cbb4711 100644
--- a/apt/package.py
+++ b/apt/package.py
@@ -64,15 +64,16 @@ class BaseDependency(object):
name - The name of the dependency
relation - The relation (>>,>=,==,<<,<=,)
version - The version depended on
+ rawtype - The type of the dependendy (e.g. 'Recommends')
preDepend - Boolean value whether this is a pre-dependency.
"""
- def __init__(self, name, rel, ver, pre, recommends=False):
+ def __init__(self, name, rel, ver, pre, rawtype=None):
self.name = name
self.relation = rel
self.version = ver
self.preDepend = pre
- self.recommends = recommends
+ self.rawtype = rawtype
def __repr__(self):
return ('<BaseDependency: name:%r relation:%r version:%r preDepend:%r>'
@@ -360,9 +361,8 @@ class Version(object):
"""Return a Record() object for this version."""
return Record(self._records.Record)
- @property
- def dependencies(self):
- """Return the dependencies of the package version."""
+ def get_dependencies(self, *types):
+ """Return a list of Dependency objects for the given types."""
depends_list = []
depends = self._cand.DependsList
for t in ["PreDepends", "Depends"]:
@@ -372,28 +372,21 @@ class Version(object):
for depOr in depVerList:
base_deps.append(BaseDependency(depOr.TargetPkg.Name,
depOr.CompType, depOr.TargetVer,
- (t == "PreDepends")))
+ (t == "PreDepends"), deptype=t))
depends_list.append(Dependency(base_deps))
except KeyError:
pass
return depends_list
@property
+ def dependencies(self):
+ """Return the dependencies of the package version."""
+ return self.get_dependencies("PreDepends", "Depends")
+
+ @property
def recommends(self):
"""Return the recommends of the package version."""
- recommends_list = []
- depends = self._cand.DependsList
- try:
- for depVerList in depends["Recommends"]:
- base_recs = []
- for depOr in depVerList:
- base_recs.append(BaseDependency(depOr.TargetPkg.Name,
- depOr.CompType,
- False, True))
- recommends_list.append(Dependency(base_recs))
- except KeyError:
- pass
- return recommends_list
+ return self.get_dependencies("Recommends")
@property
def origins(self):