Fixed search function error reporting in the encodings package
__init__.py module to raise errors which can be catched as LookupErrors as well as SystemErrors. Modified the error messages to include more information about the failing module.
This commit is contained in:
parent
494f2aea8e
commit
816a1b75b7
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue