get_dep_chain: handle InvalidDependString
authorZac Medico <zmedico@gentoo.org>
Thu, 24 Mar 2011 04:08:35 +0000 (21:08 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 24 Mar 2011 04:08:35 +0000 (21:08 -0700)
pym/_emerge/depgraph.py

index 6de3d14301a2d7137a5209b1e2356efcc018e267..391c845de1b699c7944bb17afccbff1df8e2c011 100644 (file)
@@ -2294,8 +2294,12 @@ class depgraph(object):
                if target_atom is not None and isinstance(node, Package):
                        affecting_use = set()
                        for dep_str in "DEPEND", "RDEPEND", "PDEPEND":
-                               affecting_use.update(extract_affecting_use(
-                                       node.metadata[dep_str], target_atom))
+                               try:
+                                       affecting_use.update(extract_affecting_use(
+                                               node.metadata[dep_str], target_atom))
+                               except InvalidDependString:
+                                       if not node.installed:
+                                               raise
                        affecting_use.difference_update(node.use.mask, node.use.force)
                        pkg_name = _unicode_decode("%s") % (node.cpv,)
                        if affecting_use: