diff options
-rw-r--r-- | Lib/encodings/__init__.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py index 51ec873..3830954 100644 --- a/Lib/encodings/__init__.py +++ b/Lib/encodings/__init__.py @@ -28,11 +28,15 @@ Written by Marc-Andre Lemburg (mal@lemburg.com). """#" -import codecs,aliases +import codecs,aliases,exceptions _cache = {} _unknown = '--unknown--' +class CodecRegistryError(exceptions.LookupError, + exceptions.SystemError): + pass + def search_function(encoding): # Cache lookup @@ -56,14 +60,14 @@ def search_function(encoding): except AttributeError: entry = () if len(entry) != 4: - raise SystemError,\ - 'module "%s.%s" failed to register' % \ - (__name__,modname) + raise CodecRegistryError,\ + 'module "%s" (%s) failed to register' % \ + (mod.__name__, mod.__file__) for obj in entry: if not callable(obj): - raise SystemError,\ - 'incompatible codecs in module "%s.%s"' % \ - (__name__,modname) + raise CodecRegistryError,\ + 'incompatible codecs in module "%s" (%s)' % \ + (mod.__name__, mod.__file__) # Cache the codec registry entry _cache[encoding] = entry |