diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-10-17 22:57:09 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-10-17 22:57:09 -0700 |
commit | 25bf5ebc00fa1c79e6f764a58802cd70a16967bf (patch) | |
tree | 99a5a13f2f6c62f2170455da669944780ff4912f /pym/_emerge/create_world_atom.py | |
parent | d159be545ecb431addc3e7bb31a8ed8cfd9984af (diff) | |
download | portage-25bf5ebc00fa1c79e6f764a58802cd70a16967bf.tar.gz portage-25bf5ebc00fa1c79e6f764a58802cd70a16967bf.tar.bz2 portage-25bf5ebc00fa1c79e6f764a58802cd70a16967bf.zip |
Handle InvalidData from _pkg_str.
Diffstat (limited to 'pym/_emerge/create_world_atom.py')
-rw-r--r-- | pym/_emerge/create_world_atom.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/pym/_emerge/create_world_atom.py b/pym/_emerge/create_world_atom.py index 3e05c6d74..ac994cc04 100644 --- a/pym/_emerge/create_world_atom.py +++ b/pym/_emerge/create_world_atom.py @@ -1,7 +1,15 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +import sys + from portage.dep import _repo_separator +from portage.exception import InvalidData + +if sys.hexversion >= 0x3000000: + _unicode = str +else: + _unicode = unicode def create_world_atom(pkg, args_set, root_config): """Create a new atom for the world file if one does not exist. If the @@ -35,8 +43,8 @@ def create_world_atom(pkg, args_set, root_config): for cpv in portdb.match(cp): for repo in repos: try: - available_slots.add(portdb._pkg_str(cpv, repo).slot) - except KeyError: + available_slots.add(portdb._pkg_str(_unicode(cpv), repo).slot) + except (KeyError, InvalidData): pass slotted = len(available_slots) > 1 or \ @@ -87,8 +95,9 @@ def create_world_atom(pkg, args_set, root_config): for cpv in matches: for repo in repos: try: - matched_slots.add(portdb._pkg_str(cpv, repo).slot) - except KeyError: + matched_slots.add( + portdb._pkg_str(_unicode(cpv), repo).slot) + except (KeyError, InvalidData): pass if len(matched_slots) == 1: |