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/portagepm/, gentoopm/pkgcorepm/, gentoopm/paludispm/, gentoopm/basepm/
Date: Sat, 30 Jul 2011 09:02:37
Message-Id: 47fd2cbc28005be9fdf9707c2f64dd659a2b44a0.mgorny@gentoo
1 commit: 47fd2cbc28005be9fdf9707c2f64dd659a2b44a0
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Sat Jul 30 08:14:05 2011 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sat Jul 30 08:14:05 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=47fd2cbc
7
8 Support checking whether a USEflag is enabled.
9
10 ---
11 gentoopm/basepm/pkg.py | 11 ++++++++++-
12 gentoopm/paludispm/pkg.py | 4 ++++
13 gentoopm/pkgcorepm/pkg.py | 19 +++++++++++++++++--
14 gentoopm/portagepm/pkg.py | 21 ++++++++++++++++++---
15 4 files changed, 49 insertions(+), 6 deletions(-)
16
17 diff --git a/gentoopm/basepm/pkg.py b/gentoopm/basepm/pkg.py
18 index efb80e7..b2e7581 100644
19 --- a/gentoopm/basepm/pkg.py
20 +++ b/gentoopm/basepm/pkg.py
21 @@ -93,6 +93,15 @@ class PMUseFlag(ABCObject, StringCompat):
22 """
23 return self._name
24
25 + @abstractproperty
26 + def enabled(self):
27 + """
28 + Whether the flag is enabled.
29 +
30 + @type: bool
31 + """
32 + pass
33 +
34 def __str__(self):
35 return self.name
36
37 @@ -298,7 +307,7 @@ class PMPackage(PMAtom, FillMissingComparisons):
38 @abstractproperty
39 def use(self):
40 """
41 - Get the list of USE flags declared in the ebuild (C{IUSE}).
42 + Get the list of USE flags applying to the ebuild.
43
44 @type: L{SpaceSepFrozenSet}(L{PMUseFlag})
45 """
46
47 diff --git a/gentoopm/paludispm/pkg.py b/gentoopm/paludispm/pkg.py
48 index 0c5d567..7a9b244 100644
49 --- a/gentoopm/paludispm/pkg.py
50 +++ b/gentoopm/paludispm/pkg.py
51 @@ -48,6 +48,10 @@ class PaludisChoice(PMUseFlag):
52 def name(self):
53 return str(self._c.name_with_prefix)
54
55 + @property
56 + def enabled(self):
57 + return self._c.enabled
58 +
59 class PaludisChoiceSet(SpaceSepFrozenSet):
60 def __new__(self, choices):
61 l = []
62
63 diff --git a/gentoopm/pkgcorepm/pkg.py b/gentoopm/pkgcorepm/pkg.py
64 index da81888..757bc90 100644
65 --- a/gentoopm/pkgcorepm/pkg.py
66 +++ b/gentoopm/pkgcorepm/pkg.py
67 @@ -46,7 +46,22 @@ class PkgCorePackageDescription(PMPackageDescription):
68 return None
69
70 class PkgCoreUseFlag(PMUseFlag):
71 - pass
72 + def __init__(self, s, enabled_use):
73 + PMUseFlag.__init__(self, s)
74 + self._enabled = self.name in enabled_use
75 +
76 + @property
77 + def enabled(self):
78 + return self._enabled
79 +
80 +class PkgCoreUseSet(SpaceSepFrozenSet):
81 + def __new__(self, iuse, use):
82 + def _get_iuse():
83 + for u in iuse:
84 + yield PkgCoreUseFlag(u, use)
85 +
86 + self._use = use
87 + return SpaceSepFrozenSet.__new__(self, _get_iuse())
88
89 class PkgCorePackage(PMPackage, PkgCoreAtom):
90 def __init__(self, pkg, repo_index = 0):
91 @@ -87,7 +102,7 @@ class PkgCorePackage(PMPackage, PkgCoreAtom):
92
93 @property
94 def use(self):
95 - return SpaceSepFrozenSet([PkgCoreUseFlag(x) for x in self._pkg.iuse])
96 + return PkgCoreUseSet(self._pkg.iuse, self._pkg.use)
97
98 @property
99 def slotted(self):
100
101 diff --git a/gentoopm/portagepm/pkg.py b/gentoopm/portagepm/pkg.py
102 index 9653262..9ced5ec 100644
103 --- a/gentoopm/portagepm/pkg.py
104 +++ b/gentoopm/portagepm/pkg.py
105 @@ -57,7 +57,22 @@ class PortagePackageDescription(PMPackageDescription):
106 return None # XXX
107
108 class PortageUseFlag(PMUseFlag):
109 - pass
110 + def __init__(self, s, enabled_use):
111 + PMUseFlag.__init__(self, s)
112 + self._enabled = self.name in enabled_use
113 +
114 + @property
115 + def enabled(self):
116 + return self._enabled
117 +
118 +class PortageUseSet(SpaceSepFrozenSet):
119 + def __new__(self, iuse, use):
120 + def _get_iuse():
121 + for u in iuse:
122 + yield PortageUseFlag(u, use)
123 +
124 + self._use = use
125 + return SpaceSepFrozenSet.__new__(self, _get_iuse())
126
127 class PortageDBCPV(PMPackage, CompletePortageAtom):
128 def __init__(self, cpv, dbapi):
129 @@ -126,8 +141,8 @@ class PortageDBCPV(PMPackage, CompletePortageAtom):
130
131 @property
132 def use(self):
133 - return SpaceSepFrozenSet([PortageUseFlag(x) for x \
134 - in self._aux_get('IUSE').split()])
135 + return PortageUseSet(self._aux_get('IUSE').split(),
136 + self._applied_use)
137
138 @property
139 def slotted(self):