home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.5)
-
- import codecs
- import types
- from encodings import aliases
- _cache = { }
- _unknown = '--unknown--'
- _import_tail = [
- '*']
- _norm_encoding_map = ' . 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz '
- _aliases = aliases.aliases
-
- class CodecRegistryError(LookupError, SystemError):
- pass
-
-
- def normalize_encoding(encoding):
- if hasattr(types, 'UnicodeType') and type(encoding) is types.UnicodeType:
- encoding = encoding.encode('latin-1')
-
- return '_'.join(encoding.translate(_norm_encoding_map).split())
-
-
- def search_function(encoding):
- entry = _cache.get(encoding, _unknown)
- if entry is not _unknown:
- return entry
-
- norm_encoding = normalize_encoding(encoding)
- if not _aliases.get(norm_encoding):
- pass
- aliased_encoding = _aliases.get(norm_encoding.replace('.', '_'))
- if aliased_encoding is not None:
- modnames = [
- aliased_encoding,
- norm_encoding]
- else:
- modnames = [
- norm_encoding]
- for modname in modnames:
- if not modname or '.' in modname:
- continue
-
-
- try:
- mod = __import__('encodings.' + modname, globals(), locals(), _import_tail)
- except ImportError:
- continue
-
- else:
- mod = None
-
- try:
- getregentry = mod.getregentry
- except AttributeError:
- mod = None
-
- if mod is None:
- _cache[encoding] = None
- return None
-
- entry = getregentry()
- if not isinstance(entry, codecs.CodecInfo):
- if len(entry) <= len(entry):
- pass
- elif not len(entry) <= 7:
- raise CodecRegistryError, 'module "%s" (%s) failed to register' % (mod.__name__, mod.__file__)
-
- if not not callable(entry[0]) and not callable(entry[1]):
- if not entry[2] is not None or not callable(entry[2]):
- if not entry[3] is not None or not callable(entry[3]):
- if (len(entry) > 4 and entry[4] is not None or not callable(entry[4]) or len(entry) > 5) and entry[5] is not None and not callable(entry[5]):
- raise CodecRegistryError, 'incompatible codecs in module "%s" (%s)' % (mod.__name__, mod.__file__)
-
- if len(entry) < 7 or entry[6] is None:
- entry += (None,) * (6 - len(entry)) + (mod.__name__.split('.', 1)[1],)
-
- entry = codecs.CodecInfo(*entry)
-
- _cache[encoding] = entry
-
- try:
- codecaliases = mod.getaliases()
- except AttributeError:
- pass
-
- for alias in codecaliases:
- if not _aliases.has_key(alias):
- _aliases[alias] = modname
- continue
-
- return entry
-
- codecs.register(search_function)
-