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/paludispm/
Date: Thu, 28 Jul 2011 19:54:56
Message-Id: 35ccdf9b9c1ccef8482e8d2f2ed1dac3d50849d6.mgorny@gentoo
1 commit: 35ccdf9b9c1ccef8482e8d2f2ed1dac3d50849d6
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Thu Jul 28 19:25:57 2011 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Thu Jul 28 19:25:57 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=35ccdf9b
7
8 Paludis: support passing more args to depspecs.
9
10 ---
11 gentoopm/paludispm/depend.py | 24 ++++++++++++++----------
12 1 files changed, 14 insertions(+), 10 deletions(-)
13
14 diff --git a/gentoopm/paludispm/depend.py b/gentoopm/paludispm/depend.py
15 index ee5ad4c..9084f3d 100644
16 --- a/gentoopm/paludispm/depend.py
17 +++ b/gentoopm/paludispm/depend.py
18 @@ -4,6 +4,7 @@
19 # Released under the terms of the 2-clause BSD license.
20
21 import paludis, re
22 +from collections import namedtuple
23
24 from gentoopm.basepm.depend import PMPackageDepSet, PMConditionalDep, \
25 PMAnyOfDep, PMAllOfDep, PMExactlyOneOfDep, PMBaseDep
26 @@ -12,25 +13,25 @@ from gentoopm.paludispm.atom import PaludisAtom
27 _block_re = re.compile('^!*')
28
29 class PaludisBaseDep(PMBaseDep):
30 - def __init__(self, deps, pkg):
31 + def __init__(self, deps, args):
32 self._deps = deps
33 - self._pkg = pkg
34 + self._args = args
35
36 def __iter__(self):
37 for d in self._deps:
38 if isinstance(d, paludis.PackageDepSpec):
39 - yield PaludisAtom(d, self._pkg._env)
40 + yield PaludisAtom(d, self._args.env)
41 elif isinstance(d, paludis.BlockDepSpec):
42 - yield PaludisAtom(d.blocking, self._pkg._env,
43 + yield PaludisAtom(d.blocking, self._args.env,
44 block = _block_re.match(d.text).group(0))
45 elif isinstance(d, paludis.AnyDepSpec):
46 - yield PaludisAnyOfDep(d, self._pkg)
47 + yield PaludisAnyOfDep(d, self._args)
48 elif isinstance(d, paludis.AllDepSpec):
49 - yield PaludisAllOfDep(d, self._pkg)
50 + yield PaludisAllOfDep(d, self._args)
51 elif isinstance(d, paludis.ExactlyOneDepSpec):
52 - yield PaludisExactlyOneOfDep(d, self._pkg)
53 + yield PaludisExactlyOneOfDep(d, self._args)
54 elif isinstance(d, paludis.ConditionalDepSpec):
55 - yield PaludisConditionalDep(d, self._pkg)
56 + yield PaludisConditionalDep(d, self._args)
57 elif isinstance(d, paludis.PlainTextDepSpec):
58 # XXX: this is in REQUIRED_USE as well
59 yield str(d)
60 @@ -49,7 +50,10 @@ class PaludisExactlyOneOfDep(PMExactlyOneOfDep, PaludisBaseDep):
61 class PaludisConditionalDep(PMConditionalDep, PaludisBaseDep):
62 @property
63 def enabled(self):
64 - return self._deps.condition_met(self._pkg._env, self._pkg._pkg)
65 + return self._deps.condition_met(self._args.env, self._args.pkg)
66 +
67 +_argtuple = namedtuple('PaludisDepArgTuple', ('env', 'pkg', 'cls'))
68
69 class PaludisPackageDepSet(PMPackageDepSet, PaludisAllOfDep):
70 - pass
71 + def __init__(self, deps, pkg, cls = None):
72 + PaludisAllOfDep.__init__(self, deps, _argtuple(pkg._env, pkg._pkg, cls))