aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-26 14:29:34 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-26 14:29:34 -0700
commitbf9b3e70758454afa53972340abc98a248195e45 (patch)
treebe006323ea37fcad7be18d99821d883cfe9bc6ec /pym/_emerge/Package.py
parentMake parse_metadata_use() emulate the Element.itertext() method from (diff)
downloadportage-bf9b3e70758454afa53972340abc98a248195e45.tar.gz
portage-bf9b3e70758454afa53972340abc98a248195e45.tar.bz2
portage-bf9b3e70758454afa53972340abc98a248195e45.zip
Make the Atom class add 'EAPI.incompatible' category attributes to
InvalidAtom exceptions, make use_reduce() raise InvalidDependString exceptions that encapsulate InvalidAtom exceptions, and make Package._validate_deps() use the InvalidAtom categories when recording the invalid metadata for use by repoman. Also, remove the EAPI.incompatible code from repoman that's no longer used.
Diffstat (limited to 'pym/_emerge/Package.py')
-rw-r--r--pym/_emerge/Package.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index e361c28be..b6f2d585a 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -76,7 +76,18 @@ class Package(Task):
use_reduce(v, eapi=eapi,
is_valid_flag=self.iuse.is_valid_flag, token_class=Atom)
except portage.exception.InvalidDependString as e:
- self._invalid_metadata(k + ".syntax", "%s: %s" % (k, e))
+ categorized_error = False
+ if e.errors:
+ for error in e.errors:
+ if getattr(error, 'category', None) is None:
+ continue
+ categorized_error = True
+ self._invalid_metadata(error.category,
+ "%s: %s" % (k, error))
+
+ if not categorized_error:
+ self._invalid_metadata(k + ".syntax",
+ "%s: %s" % (k, e))
k = 'REQUIRED_USE'
v = self.metadata.get(k)