From 92b579d48d4028e995a3109837c9328fb07e06ce Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 26 Jun 2008 18:24:34 +0000 Subject: Handle KeyError from aux_get() inside dbapi._iter_match_slot() and _iter_match_use(). Thanks to grobian for reporting. svn path=/main/trunk/; revision=10802 --- pym/portage/dbapi/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'pym') diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py index ba37c867e..54ce7afc3 100644 --- a/pym/portage/dbapi/__init__.py +++ b/pym/portage/dbapi/__init__.py @@ -135,8 +135,11 @@ class dbapi(object): def _iter_match_slot(self, atom, cpv_iter): for cpv in cpv_iter: - if self.aux_get(cpv, ["SLOT"])[0] == atom.slot: - yield cpv + try: + if self.aux_get(cpv, ["SLOT"])[0] == atom.slot: + yield cpv + except KeyError: + continue def _iter_match_use(self, atom, cpv_iter): """ @@ -146,7 +149,10 @@ class dbapi(object): if self._iuse_implicit is None: self._iuse_implicit = self.settings._get_implicit_iuse() for cpv in cpv_iter: - iuse, use = self.aux_get(cpv, ["IUSE", "USE"]) + try: + iuse, use = self.aux_get(cpv, ["IUSE", "USE"]) + except KeyError: + continue use = use.split() iuse = self._iuse_implicit.union( re.escape(x.lstrip("+-")) for x in iuse.split()) -- cgit v1.2.3-1-g7c22