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/
Date: Tue, 26 Jul 2011 20:10:43
Message-Id: 79f2892a3b8bbf34a177c96483e88ae60202ca80.mgorny@gentoo
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