From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gentoopm:master commit in: gentoopm/portagepm/, gentoopm/pkgcorepm/, gentoopm/paludispm/
Date: Tue, 26 Jul 2011 20:10:28 +0000 (UTC) [thread overview]
Message-ID: <79f2892a3b8bbf34a177c96483e88ae60202ca80.mgorny@gentoo> (raw)
commit: 79f2892a3b8bbf34a177c96483e88ae60202ca80
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 26 19:50:02 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 26 19:50:02 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoopm.git;a=commit;h=79f2892a
Support getting IUSE in all PMs.
---
gentoopm/paludispm/pkg.py | 10 +++++++++-
gentoopm/pkgcorepm/pkg.py | 9 ++++++++-
gentoopm/portagepm/pkg.py | 10 +++++++++-
3 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/gentoopm/paludispm/pkg.py b/gentoopm/paludispm/pkg.py
index 08398ae..7ad3e61 100644
--- a/gentoopm/paludispm/pkg.py
+++ b/gentoopm/paludispm/pkg.py
@@ -8,7 +8,7 @@ import paludis
from gentoopm.basepm.metadata import PMPackageMetadata
from gentoopm.basepm.pkg import PMPackage, PMPackageDescription, \
PMInstallablePackage, PMInstalledPackage, PMBoundPackageKey, \
- PMPackageState
+ PMPackageState, PMUseFlag
from gentoopm.paludispm.atom import PaludisAtom, \
PaludisPackageKey, PaludisPackageVersion
from gentoopm.paludispm.contents import PaludisPackageContents
@@ -39,6 +39,9 @@ class PaludisPackageDescription(PMPackageDescription):
k = self._pkg.long_description_key()
return k.parse_value() if k is not None else None
+class PaludisUseFlag(PMUseFlag):
+ pass
+
class PaludisID(PMPackage, PaludisAtom):
def __init__(self, pkg, env):
self._pkg = pkg
@@ -114,6 +117,11 @@ class PaludisID(PMPackage, PaludisAtom):
self)
@property
+ def use(self):
+ iuse = self._pkg.find_metadata('IUSE').parse_value()
+ return SpaceSepTuple([PaludisUseFlag(x) for x in iuse])
+
+ @property
def _atom(self):
return self._pkg.uniquely_identifying_spec()
diff --git a/gentoopm/pkgcorepm/pkg.py b/gentoopm/pkgcorepm/pkg.py
index d49dc51..819aa4b 100644
--- a/gentoopm/pkgcorepm/pkg.py
+++ b/gentoopm/pkgcorepm/pkg.py
@@ -6,7 +6,7 @@
from gentoopm.basepm.metadata import PMPackageMetadata
from gentoopm.basepm.pkg import PMPackage, PMPackageDescription, \
PMInstalledPackage, PMInstallablePackage, PMBoundPackageKey, \
- PMPackageState
+ PMPackageState, PMUseFlag
from gentoopm.basepm.pkgset import PMPackageSet, PMFilteredPackageSet
from gentoopm.pkgcorepm.atom import PkgCoreAtom, PkgCorePackageKey
from gentoopm.pkgcorepm.contents import PkgCorePackageContents
@@ -45,6 +45,9 @@ class PkgCorePackageDescription(PMPackageDescription):
else: # vdb, for example
return None
+class PkgCoreUseFlag(PMUseFlag):
+ pass
+
class PkgCorePackage(PMPackage, PkgCoreAtom):
def __init__(self, pkg, repo_index = 0):
self._pkg = pkg
@@ -71,6 +74,10 @@ class PkgCorePackage(PMPackage, PkgCoreAtom):
return SpaceSepTuple(self._pkg.homepage)
@property
+ def use(self):
+ return SpaceSepTuple([PkgCoreUseFlag(x) for x in self._pkg.iuse])
+
+ @property
def slotted(self):
return PkgCoreAtom(self._pkg.slotted_atom)
diff --git a/gentoopm/portagepm/pkg.py b/gentoopm/portagepm/pkg.py
index 9922af3..39e4a59 100644
--- a/gentoopm/portagepm/pkg.py
+++ b/gentoopm/portagepm/pkg.py
@@ -8,7 +8,7 @@ from portage.versions import cpv_getkey, cpv_getversion, vercmp
from gentoopm.basepm.metadata import PMPackageMetadata
from gentoopm.basepm.pkg import PMPackage, PMPackageDescription, \
PMInstalledPackage, PMInstallablePackage, PMBoundPackageKey, \
- PMPackageState
+ PMPackageState, PMUseFlag
from gentoopm.basepm.pkgset import PMPackageSet, PMFilteredPackageSet
from gentoopm.portagepm.atom import PortageAtom, CompletePortageAtom, \
PortagePackageKey, PortagePackageVersion, _get_atom
@@ -55,6 +55,9 @@ class PortagePackageDescription(PMPackageDescription):
"""
return None # XXX
+class PortageUseFlag(PMUseFlag):
+ pass
+
class PortageDBCPV(PMPackage, CompletePortageAtom):
def __init__(self, cpv, dbapi):
self._cpv = cpv
@@ -106,6 +109,11 @@ class PortageDBCPV(PMPackage, CompletePortageAtom):
raise None
@property
+ def use(self):
+ return SpaceSepTuple([PortageUseFlag(x) for x \
+ in self._aux_get('IUSE').split()])
+
+ @property
def slotted(self):
cp = str(self.key)
slot = self.slot
next reply other threads:[~2011-07-26 20:10 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-26 20:10 Michał Górny [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-07-14 7:32 [gentoo-commits] proj/gentoopm:master commit in: gentoopm/portagepm/, gentoopm/pkgcorepm/, gentoopm/paludispm/ Michał Górny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=79f2892a3b8bbf34a177c96483e88ae60202ca80.mgorny@gentoo \
--to=mgorny@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox