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 |