* [gentoo-commits] proj/portage:master commit in: pym/portage/, bin/, pym/portage/dbapi/
@ 2015-11-30 23:08 Arfrever Frehtes Taifersar Arahesis
0 siblings, 0 replies; only message in thread
From: Arfrever Frehtes Taifersar Arahesis @ 2015-11-30 23:08 UTC (permalink / raw
To: gentoo-commits
commit: 3ffdbbe06fab5f3c60d03a77f5a2d08cb94b1869
Author: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Mon Nov 30 23:06:18 2015 +0000
Commit: Arfrever Frehtes Taifersar Arahesis <arfrever <AT> apache <DOT> org>
CommitDate: Mon Nov 30 23:06:18 2015 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=3ffdbbe0
ebuild: Do not catch unexpected KeyErrors from aux_get().
bin/ebuild | 5 +++--
pym/portage/dbapi/porttree.py | 20 ++++++++++----------
pym/portage/exception.py | 5 ++++-
3 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/bin/ebuild b/bin/ebuild
index 59fced0..ed1231f 100755
--- a/bin/ebuild
+++ b/bin/ebuild
@@ -1,5 +1,5 @@
#!/usr/bin/python -bO
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from __future__ import print_function
@@ -49,6 +49,7 @@ from portage import _shell_quote
from portage import _unicode_decode
from portage import _unicode_encode
from portage.const import VDB_PATH
+from portage.exception import PortageKeyError
from _emerge.Package import Package
from _emerge.RootConfig import RootConfig
@@ -273,7 +274,7 @@ try:
metadata = dict(zip(Package.metadata_keys,
portage.db[portage.settings['EROOT']][mytree].dbapi.aux_get(
cpv, Package.metadata_keys, myrepo=myrepo)))
-except KeyError:
+except PortageKeyError:
# aux_get failure, message should have been shown on stderr.
sys.exit(1)
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index a954de5..23f3169 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2014 Gentoo Foundation
+# Copyright 1998-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from __future__ import unicode_literals
@@ -23,7 +23,7 @@ from portage.cache import volatile
from portage.cache.cache_errors import CacheError
from portage.cache.mappings import Mapping
from portage.dbapi import dbapi
-from portage.exception import PortageException, \
+from portage.exception import PortageException, PortageKeyError, \
FileNotFound, InvalidAtom, InvalidData, \
InvalidDependString, InvalidPackageName
from portage.localization import _
@@ -435,7 +435,7 @@ class portdbapi(dbapi):
writemsg(_("!!! aux_get(): ebuild for " \
"'%s' does not exist at:\n") % (cpv,), noiselevel=-1)
writemsg("!!! %s\n" % ebuild_path, noiselevel=-1)
- raise KeyError(cpv)
+ raise PortageKeyError(cpv)
# Pull pre-generated metadata from the metadata/cache/
# directory if it exists and is valid, otherwise fall
@@ -481,12 +481,12 @@ class portdbapi(dbapi):
def aux_get(self, mycpv, mylist, mytree=None, myrepo=None):
"stub code for returning auxilliary db information, such as SLOT, DEPEND, etc."
'input: "sys-apps/foo-1.0",["SLOT","DEPEND","HOMEPAGE"]'
- 'return: ["0",">=sys-libs/bar-1.0","http://www.foo.com"] or raise KeyError if error'
+ 'return: ["0",">=sys-libs/bar-1.0","http://www.foo.com"] or raise PortageKeyError if error'
cache_me = False
if myrepo is not None:
mytree = self.treemap.get(myrepo)
if mytree is None:
- raise KeyError(myrepo)
+ raise PortageKeyError(myrepo)
if mytree is not None and len(self.porttrees) == 1 \
and mytree == self.porttrees[0]:
@@ -507,22 +507,22 @@ class portdbapi(dbapi):
try:
cat, pkg = mycpv.split("/", 1)
except ValueError:
- # Missing slash. Can't find ebuild so raise KeyError.
- raise KeyError(mycpv)
+ # Missing slash. Can't find ebuild so raise PortageKeyError.
+ raise PortageKeyError(mycpv)
myebuild, mylocation = self.findname2(mycpv, mytree)
if not myebuild:
writemsg("!!! aux_get(): %s\n" % \
_("ebuild not found for '%s'") % mycpv, noiselevel=1)
- raise KeyError(mycpv)
+ raise PortageKeyError(mycpv)
mydata, ebuild_hash = self._pull_valid_cache(mycpv, myebuild, mylocation)
doregen = mydata is None
if doregen:
if myebuild in self._broken_ebuilds:
- raise KeyError(mycpv)
+ raise PortageKeyError(mycpv)
proc = EbuildMetadataPhase(cpv=mycpv,
ebuild_hash=ebuild_hash, portdb=self,
@@ -534,7 +534,7 @@ class portdbapi(dbapi):
if proc.returncode != os.EX_OK:
self._broken_ebuilds.add(myebuild)
- raise KeyError(mycpv)
+ raise PortageKeyError(mycpv)
mydata = proc.metadata
diff --git a/pym/portage/exception.py b/pym/portage/exception.py
index 857a727..263cdf0 100644
--- a/pym/portage/exception.py
+++ b/pym/portage/exception.py
@@ -1,4 +1,4 @@
-# Copyright 1998-2014 Gentoo Foundation
+# Copyright 1998-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
import signal
@@ -42,6 +42,9 @@ class PortageException(Exception):
else:
return repr(self.value)
+class PortageKeyError(KeyError, PortageException):
+ __doc__ = KeyError.__doc__
+
class CorruptionError(PortageException):
"""Corruption indication"""
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-11-30 23:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-30 23:08 [gentoo-commits] proj/portage:master commit in: pym/portage/, bin/, pym/portage/dbapi/ Arfrever Frehtes Taifersar Arahesis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox