diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-12-25 04:22:46 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-12-25 04:22:46 +0000 |
commit | 094e4d97d67f8e39aa17ea39bad04daa2cd26350 (patch) | |
tree | 33d8fcf9949b6b8874bfd1161de4d7c7b318f9fe /pym/portage/cache/metadata.py | |
parent | ff3b62faa19303bfdc36c961e3e9c2fc6f74074f (diff) | |
download | portage-094e4d97d67f8e39aa17ea39bad04daa2cd26350.tar.gz portage-094e4d97d67f8e39aa17ea39bad04daa2cd26350.tar.bz2 portage-094e4d97d67f8e39aa17ea39bad04daa2cd26350.zip |
Handle potential KeyErrors that may be raised from get_eclass_data(), and
remove unnecessary print statements inside get_eclass_data().
svn path=/main/trunk/; revision=12329
Diffstat (limited to 'pym/portage/cache/metadata.py')
-rw-r--r-- | pym/portage/cache/metadata.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pym/portage/cache/metadata.py b/pym/portage/cache/metadata.py index 86717e6c5..b602f62bc 100644 --- a/pym/portage/cache/metadata.py +++ b/pym/portage/cache/metadata.py @@ -4,7 +4,7 @@ # $Id$ import os, re, stat, types -from portage.cache import flat_hash +from portage.cache import cache_errors, flat_hash import portage.eclass_cache from portage.cache.template import reconstruct_eclasses from portage.cache.mappings import ProtectedDict @@ -55,7 +55,12 @@ class database(flat_hash.database): if "_eclasses_" not in d: if "INHERITED" in d: - d["_eclasses_"] = self.ec.get_eclass_data(d["INHERITED"].split(), from_master_only=True) + try: + d["_eclasses_"] = self.ec.get_eclass_data( + d["INHERITED"].split(), from_master_only=True) + except KeyError, e: + # INHERITED contains a non-existent eclass. + raise cache_errors.CacheCorruption(cpv, e) del d["INHERITED"] else: d["_eclasses_"] = {} |