public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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)),



             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