diff options
-rw-r--r-- | pym/portage/__init__.py | 5 | ||||
-rw-r--r-- | pym/portage/exception.py | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 38724fc45..dc21b10d5 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -6617,7 +6617,10 @@ def cpv_expand(mycpv, mydb=None, use_cache=1, settings=None): else: virtual_name_collision = True if not virtual_name_collision: - raise ValueError, matches + # AmbiguousPackageName inherits from ValueError, + # for backward compatibility with calling code + # that already handles ValueError. + raise portage.exception.AmbiguousPackageName(matches) elif matches: mykey=matches[0] diff --git a/pym/portage/exception.py b/pym/portage/exception.py index ff34993a6..6626fa3bf 100644 --- a/pym/portage/exception.py +++ b/pym/portage/exception.py @@ -67,6 +67,13 @@ class ReadOnlyFileSystem(PortageException): class CommandNotFound(PortageException): """A required binary was not available or executable""" +class AmbiguousPackageName(ValueError, PortageException): + """Raised by portage.cpv_expand() when the package name is ambiguous due + to the existence of multiple matches in different categories. This inherits + from ValueError, for backward compatibility with calling code that already + handles ValueError.""" + def __str__(self): + return ValueError.__str__(self) class PortagePackageException(PortageException): """Malformed or missing package data""" |