1 |
commit: 79f2892a3b8bbf34a177c96483e88ae60202ca80 |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Jul 26 19:50:02 2011 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Jul 26 19:50:02 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=79f2892a |
7 |
|
8 |
Support getting IUSE in all PMs. |
9 |
|
10 |
--- |
11 |
gentoopm/paludispm/pkg.py | 10 +++++++++- |
12 |
gentoopm/pkgcorepm/pkg.py | 9 ++++++++- |
13 |
gentoopm/portagepm/pkg.py | 10 +++++++++- |
14 |
3 files changed, 26 insertions(+), 3 deletions(-) |
15 |
|
16 |
diff --git a/gentoopm/paludispm/pkg.py b/gentoopm/paludispm/pkg.py |
17 |
index 08398ae..7ad3e61 100644 |
18 |
--- a/gentoopm/paludispm/pkg.py |
19 |
+++ b/gentoopm/paludispm/pkg.py |
20 |
@@ -8,7 +8,7 @@ import paludis |
21 |
from gentoopm.basepm.metadata import PMPackageMetadata |
22 |
from gentoopm.basepm.pkg import PMPackage, PMPackageDescription, \ |
23 |
PMInstallablePackage, PMInstalledPackage, PMBoundPackageKey, \ |
24 |
- PMPackageState |
25 |
+ PMPackageState, PMUseFlag |
26 |
from gentoopm.paludispm.atom import PaludisAtom, \ |
27 |
PaludisPackageKey, PaludisPackageVersion |
28 |
from gentoopm.paludispm.contents import PaludisPackageContents |
29 |
@@ -39,6 +39,9 @@ class PaludisPackageDescription(PMPackageDescription): |
30 |
k = self._pkg.long_description_key() |
31 |
return k.parse_value() if k is not None else None |
32 |
|
33 |
+class PaludisUseFlag(PMUseFlag): |
34 |
+ pass |
35 |
+ |
36 |
class PaludisID(PMPackage, PaludisAtom): |
37 |
def __init__(self, pkg, env): |
38 |
self._pkg = pkg |
39 |
@@ -114,6 +117,11 @@ class PaludisID(PMPackage, PaludisAtom): |
40 |
self) |
41 |
|
42 |
@property |
43 |
+ def use(self): |
44 |
+ iuse = self._pkg.find_metadata('IUSE').parse_value() |
45 |
+ return SpaceSepTuple([PaludisUseFlag(x) for x in iuse]) |
46 |
+ |
47 |
+ @property |
48 |
def _atom(self): |
49 |
return self._pkg.uniquely_identifying_spec() |
50 |
|
51 |
|
52 |
diff --git a/gentoopm/pkgcorepm/pkg.py b/gentoopm/pkgcorepm/pkg.py |
53 |
index d49dc51..819aa4b 100644 |
54 |
--- a/gentoopm/pkgcorepm/pkg.py |
55 |
+++ b/gentoopm/pkgcorepm/pkg.py |
56 |
@@ -6,7 +6,7 @@ |
57 |
from gentoopm.basepm.metadata import PMPackageMetadata |
58 |
from gentoopm.basepm.pkg import PMPackage, PMPackageDescription, \ |
59 |
PMInstalledPackage, PMInstallablePackage, PMBoundPackageKey, \ |
60 |
- PMPackageState |
61 |
+ PMPackageState, PMUseFlag |
62 |
from gentoopm.basepm.pkgset import PMPackageSet, PMFilteredPackageSet |
63 |
from gentoopm.pkgcorepm.atom import PkgCoreAtom, PkgCorePackageKey |
64 |
from gentoopm.pkgcorepm.contents import PkgCorePackageContents |
65 |
@@ -45,6 +45,9 @@ class PkgCorePackageDescription(PMPackageDescription): |
66 |
else: # vdb, for example |
67 |
return None |
68 |
|
69 |
+class PkgCoreUseFlag(PMUseFlag): |
70 |
+ pass |
71 |
+ |
72 |
class PkgCorePackage(PMPackage, PkgCoreAtom): |
73 |
def __init__(self, pkg, repo_index = 0): |
74 |
self._pkg = pkg |
75 |
@@ -71,6 +74,10 @@ class PkgCorePackage(PMPackage, PkgCoreAtom): |
76 |
return SpaceSepTuple(self._pkg.homepage) |
77 |
|
78 |
@property |
79 |
+ def use(self): |
80 |
+ return SpaceSepTuple([PkgCoreUseFlag(x) for x in self._pkg.iuse]) |
81 |
+ |
82 |
+ @property |
83 |
def slotted(self): |
84 |
return PkgCoreAtom(self._pkg.slotted_atom) |
85 |
|
86 |
|
87 |
diff --git a/gentoopm/portagepm/pkg.py b/gentoopm/portagepm/pkg.py |
88 |
index 9922af3..39e4a59 100644 |
89 |
--- a/gentoopm/portagepm/pkg.py |
90 |
+++ b/gentoopm/portagepm/pkg.py |
91 |
@@ -8,7 +8,7 @@ from portage.versions import cpv_getkey, cpv_getversion, vercmp |
92 |
from gentoopm.basepm.metadata import PMPackageMetadata |
93 |
from gentoopm.basepm.pkg import PMPackage, PMPackageDescription, \ |
94 |
PMInstalledPackage, PMInstallablePackage, PMBoundPackageKey, \ |
95 |
- PMPackageState |
96 |
+ PMPackageState, PMUseFlag |
97 |
from gentoopm.basepm.pkgset import PMPackageSet, PMFilteredPackageSet |
98 |
from gentoopm.portagepm.atom import PortageAtom, CompletePortageAtom, \ |
99 |
PortagePackageKey, PortagePackageVersion, _get_atom |
100 |
@@ -55,6 +55,9 @@ class PortagePackageDescription(PMPackageDescription): |
101 |
""" |
102 |
return None # XXX |
103 |
|
104 |
+class PortageUseFlag(PMUseFlag): |
105 |
+ pass |
106 |
+ |
107 |
class PortageDBCPV(PMPackage, CompletePortageAtom): |
108 |
def __init__(self, cpv, dbapi): |
109 |
self._cpv = cpv |
110 |
@@ -106,6 +109,11 @@ class PortageDBCPV(PMPackage, CompletePortageAtom): |
111 |
raise None |
112 |
|
113 |
@property |
114 |
+ def use(self): |
115 |
+ return SpaceSepTuple([PortageUseFlag(x) for x \ |
116 |
+ in self._aux_get('IUSE').split()]) |
117 |
+ |
118 |
+ @property |
119 |
def slotted(self): |
120 |
cp = str(self.key) |
121 |
slot = self.slot |