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  | 
