From: "Zac Medico" <zmedico@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/, pym/_emerge/
Date: Mon, 11 Jun 2012 00:58:41 +0000 (UTC) [thread overview]
Message-ID: <1339376294.b6ecc428a7e04afa3449df6a6844978eeb40d569.zmedico@gentoo> (raw)
commit: b6ecc428a7e04afa3449df6a6844978eeb40d569
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 11 00:58:14 2012 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Jun 11 00:58:14 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=b6ecc428
Package: use _eapi_attrs
---
pym/_emerge/Package.py | 7 ++++---
pym/portage/eapi.py | 5 ++++-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index bdd4bc7..75021b9 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -10,7 +10,7 @@ from portage.const import EBUILD_PHASES
from portage.dep import Atom, check_required_use, use_reduce, \
paren_enclose, _slot_re, _slot_separator, _repo_separator
from portage.versions import _pkg_str, _unknown_repo
-from portage.eapi import eapi_has_iuse_defaults, eapi_has_required_use
+from portage.eapi import _get_eapi_attrs
from portage.exception import InvalidDependString
from _emerge.Task import Task
@@ -49,6 +49,7 @@ class Package(Task):
self.metadata = _PackageMetadataWrapper(self, self._raw_metadata)
if not self.built:
self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '')
+ eapi_attrs = _get_eapi_attrs(self.metadata["EAPI"])
slot = self.slot
if _slot_re.match(slot) is None:
self._invalid_metadata('SLOT.invalid',
@@ -62,7 +63,7 @@ class Package(Task):
# sync metadata with validated repo (may be UNKNOWN_REPO)
self.metadata['repository'] = self.cpv.repo
if (self.iuse.enabled or self.iuse.disabled) and \
- not eapi_has_iuse_defaults(self.metadata["EAPI"]):
+ not eapi_attrs.iuse_defaults:
if not self.installed:
self._invalid_metadata('EAPI.incompatible',
"IUSE contains defaults, but EAPI doesn't allow them")
@@ -194,7 +195,7 @@ class Package(Task):
k = 'REQUIRED_USE'
v = self.metadata.get(k)
if v:
- if not eapi_has_required_use(eapi):
+ if not _get_eapi_attrs(eapi).required_use:
self._invalid_metadata('EAPI.incompatible',
"REQUIRED_USE set, but EAPI='%s' doesn't allow it" % eapi)
else:
diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
index ca8af9c..e36567d 100644
--- a/pym/portage/eapi.py
+++ b/pym/portage/eapi.py
@@ -64,7 +64,8 @@ def eapi_allows_dots_in_use_flags(eapi):
return eapi in ("4-python",)
_eapi_attrs = collections.namedtuple('_eapi_attrs',
- 'dots_in_PN dots_in_use_flags repo_deps slot_deps '
+ 'dots_in_PN dots_in_use_flags iuse_defaults '
+ 'repo_deps required_use slot_deps '
'src_uri_arrows strong_blocks use_deps use_dep_defaults')
_eapi_attrs_cache = {}
@@ -81,7 +82,9 @@ def _get_eapi_attrs(eapi):
eapi_attrs = _eapi_attrs(
dots_in_PN = (eapi is None or eapi_allows_dots_in_PN(eapi)),
dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)),
+ iuse_defaults = (eapi is None or eapi_has_iuse_defaults(eapi)),
repo_deps = (eapi is None or eapi_has_repo_deps(eapi)),
+ required_use = (eapi is None or eapi_has_required_use(eapi)),
slot_deps = (eapi is None or eapi_has_slot_deps(eapi)),
src_uri_arrows = (eapi is None or eapi_has_src_uri_arrows(eapi)),
strong_blocks = (eapi is None or eapi_has_strong_blocks(eapi)),
next reply other threads:[~2012-06-11 0:58 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-11 0:58 Zac Medico [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-08-12 21:25 [gentoo-commits] proj/portage:master commit in: pym/portage/, pym/_emerge/ Zac Medico
2013-07-22 22:32 Arfrever Frehtes Taifersar Arahesis
2012-09-26 2:15 Zac Medico
2012-09-21 18:40 Zac Medico
2012-06-11 5:58 Zac Medico
2012-06-11 5:32 Zac Medico
2011-10-27 3:13 Zac Medico
2011-10-25 8:25 Zac Medico
2011-10-15 6:11 Zac Medico
2011-07-12 23:21 Zac Medico
2011-07-07 4:36 Zac Medico
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=1339376294.b6ecc428a7e04afa3449df6a6844978eeb40d569.zmedico@gentoo \
--to=zmedico@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