summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-10-17 22:57:09 -0700
committerZac Medico <zmedico@gentoo.org>2012-10-17 22:57:09 -0700
commit25bf5ebc00fa1c79e6f764a58802cd70a16967bf (patch)
tree99a5a13f2f6c62f2170455da669944780ff4912f /pym/_emerge
parentd159be545ecb431addc3e7bb31a8ed8cfd9984af (diff)
downloadportage-25bf5ebc00fa1c79e6f764a58802cd70a16967bf.tar.gz
portage-25bf5ebc00fa1c79e6f764a58802cd70a16967bf.tar.bz2
portage-25bf5ebc00fa1c79e6f764a58802cd70a16967bf.zip
Handle InvalidData from _pkg_str.
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/create_world_atom.py17
-rw-r--r--pym/_emerge/depgraph.py4
2 files changed, 15 insertions, 6 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:
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index ef31d58d1..0722fac78 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -25,7 +25,7 @@ from portage.dep import Atom, best_match_to_list, extract_affecting_use, \
from portage.dep._slot_operator import ignore_built_slot_operator_deps
from portage.eapi import eapi_has_strong_blocks, eapi_has_required_use, \
_get_eapi_attrs
-from portage.exception import (InvalidAtom, InvalidDependString,
+from portage.exception import (InvalidAtom, InvalidData, InvalidDependString,
PackageNotFound, PortageException)
from portage.output import colorize, create_color_func, \
darkgreen, green
@@ -3832,7 +3832,7 @@ class depgraph(object):
other_db._pkg_str(_unicode(cpv), None).slot:
slot_available = True
break
- except KeyError:
+ except (KeyError, InvalidData):
pass
if not slot_available:
continue