From b9e0764d8bc610d90d5aed9d8a97fe7643a2eeec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Mon, 29 Jul 2002 14:05:24 +0000 Subject: Revert #571603 since it is ok to import codecs that are not subdirectories of encodings. Skip modules that don't have a getregentry function. --- Lib/encodings/__init__.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py index ca59721..e3b97ae 100644 --- a/Lib/encodings/__init__.py +++ b/Lib/encodings/__init__.py @@ -55,24 +55,27 @@ def search_function(encoding): try: mod = __import__('encodings.' + modname, globals(), locals(), _import_tail) - except ImportError,why: + except ImportError: import aliases modname = aliases.aliases.get(modname, modname) try: - mod = __import__('encodings.' + modname, globals(), locals(), _import_tail) - except ImportError,why: + mod = __import__(modname, globals(), locals(), _import_tail) + except ImportError: mod = None + + try: + getregentry = mod.getregentry + except AttributeError: + # Not a codec module + mod = None + if mod is None: # Cache misses _cache[encoding] = None - return None - + return None # Now ask the module for the registry entry - try: - entry = tuple(mod.getregentry()) - except AttributeError: - entry = () + entry = tuple(getregentry()) if len(entry) != 4: raise CodecRegistryError,\ 'module "%s" (%s) failed to register' % \ -- cgit v0.12