diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-08-18 13:26:47 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-08-18 13:26:47 +0200 |
| commit | aae9d9c7c07c7c078e11d2d8affc88d9eaa51e11 (patch) | |
| tree | 76c9ba685147ada9a2e4d0dba280ddd571ad1055 | |
| parent | c4e78b09ceeabeb7eee6ce4d7d999be674c4e413 (diff) | |
| download | python-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.
| -rw-r--r-- | apt/package.py | 31 | ||||
| -rw-r--r-- | debian/changelog | 8 |
2 files changed, 19 insertions, 20 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): diff --git a/debian/changelog b/debian/changelog index 917c2d88..03f0ad5b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,15 @@ python-apt (0.7.12.2) UNRELEASED; urgency=low + [ Michael Vogt ] * apt/package.py: - add "recommends" property - -- Michael Vogt <mvo@debian.org> Tue, 18 Aug 2009 11:48:01 +0200 + [ Julian Andres Klode ] + * apt/package.py: + - Introduce Version.get_dependencies() which takes one or more types + of dependencies and returns a list of Dependency objects. + + -- Julian Andres Klode <jak@debian.org> Tue, 18 Aug 2009 13:22:56 +0200 python-apt (0.7.12.1) unstable; urgency=low |
