Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoopm:master commit in: gentoopm/pkgcorepm/
Date: Tue, 26 Jul 2011 07:24:19
Message-Id: 38f9d3fda6203bf31a2fb5e12fcc7cfc3c840a71.mgorny@gentoo
1 commit: 38f9d3fda6203bf31a2fb5e12fcc7cfc3c840a71
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jul 26 07:24:37 2011 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Tue Jul 26 07:24:37 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=38f9d3fd
7
8 pkgcore: support dropping conditionals using evaluate_depset().
9
10 ---
11 gentoopm/pkgcorepm/depend.py | 27 +++++++++++++++++++++++++++
12 1 files changed, 27 insertions(+), 0 deletions(-)
13
14 diff --git a/gentoopm/pkgcorepm/depend.py b/gentoopm/pkgcorepm/depend.py
15 index 5c38500..eaa6333 100644
16 --- a/gentoopm/pkgcorepm/depend.py
17 +++ b/gentoopm/pkgcorepm/depend.py
18 @@ -37,4 +37,31 @@ class PkgCoreConditionalUseDep(PMConditionalDep, PkgCoreBaseDep):
19 return self._deps.restriction.match(self._pkg.use)
20
21 class PkgCorePackageDepSet(PMPackageDepSet, PkgCoreBaseDep):
22 + @property
23 + def without_conditionals(self):
24 + return PkgCoreUncondPackageDepSet(
25 + self._deps.evaluate_depset(self._pkg.use))
26 +
27 +class PkgCoreUncondDep(PkgCoreBaseDep):
28 + def __init__(self, deps):
29 + self._deps = deps
30 +
31 + @property
32 + def without_conditionals(self):
33 + return self
34 +
35 + def __iter__(self):
36 + for d in self._deps:
37 + if isinstance(d, atom):
38 + yield PkgCoreAtom(d)
39 + elif isinstance(d, OrRestriction):
40 + yield PkgCoreUncondOneOfDep(d)
41 + else:
42 + raise NotImplementedError('Parsing %s not implemented' \
43 + % repr(d))
44 +
45 +class PkgCoreUncondOneOfDep(PMOneOfDep, PkgCoreUncondDep):
46 + pass
47 +
48 +class PkgCoreUncondPackageDepSet(PkgCoreUncondDep):
49 pass