diff options
author | Aurelien Campeas <aurelien.campeas@logilab.fr> | 2014-10-07 17:39:39 +0200 |
---|---|---|
committer | Aurelien Campeas <aurelien.campeas@logilab.fr> | 2014-10-07 17:39:39 +0200 |
commit | 69ca62f2e1bfe1796692906290d775d6bd1b6b44 (patch) | |
tree | c459e584c6a4b2bc9f46312b514241ed2c270181 /logilab | |
parent | 0f277e978151d808270b29acb03d665d602b9a17 (diff) | |
download | logilab-common-69ca62f2e1bfe1796692906290d775d6bd1b6b44.tar.gz |
[registry] raise a typed exception rather than a bare Exception
Diffstat (limited to 'logilab')
-rw-r--r-- | logilab/common/registry.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/logilab/common/registry.py b/logilab/common/registry.py index a52b2eb..86a85f9 100644 --- a/logilab/common/registry.py +++ b/logilab/common/registry.py @@ -119,6 +119,12 @@ class NoSelectableObject(RegistryException): return ('args: %s, kwargs: %s\ncandidates: %s' % (self.args, self.kwargs.keys(), self.objects)) +class SelectAmbiguity(RegistryException): + """Raised when several objects compete at selection time with an equal + score. + + """ + def _modname_from_path(path, extrapath=None): modpath = modpath_from_file(path, extrapath) @@ -402,7 +408,7 @@ class Registry(dict): msg = 'select ambiguity: %s\n(args: %s, kwargs: %s)' if self.debugmode: # raise bare exception in debug mode - raise Exception(msg % (winners, args, kwargs.keys())) + raise SelectAmbiguity(msg % (winners, args, kwargs.keys())) self.error(msg, winners, args, kwargs.keys()) # return the result of calling the object return self.selected(winners[0], args, kwargs) |