home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_573 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.7 KB  |  81 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import codecs
  5. from encodings import aliases
  6. import __builtin__
  7. _cache = { }
  8. _unknown = '--unknown--'
  9. _import_tail = [
  10.     '*']
  11. _norm_encoding_map = '                                              . 0123456789       ABCDEFGHIJKLMNOPQRSTUVWXYZ      abcdefghijklmnopqrstuvwxyz                                                                                                                                     '
  12. _aliases = aliases.aliases
  13.  
  14. class CodecRegistryError(LookupError, SystemError):
  15.     pass
  16.  
  17.  
  18. def normalize_encoding(encoding):
  19.     if hasattr(__builtin__, 'unicode') and isinstance(encoding, unicode):
  20.         encoding = encoding.encode('latin-1')
  21.     
  22.     return '_'.join(encoding.translate(_norm_encoding_map).split())
  23.  
  24.  
  25. def search_function(encoding):
  26.     entry = _cache.get(encoding, _unknown)
  27.     if entry is not _unknown:
  28.         return entry
  29.     norm_encoding = normalize_encoding(encoding)
  30.     if not _aliases.get(norm_encoding):
  31.         pass
  32.     aliased_encoding = _aliases.get(norm_encoding.replace('.', '_'))
  33.     if aliased_encoding is not None:
  34.         modnames = [
  35.             aliased_encoding,
  36.             norm_encoding]
  37.     else:
  38.         modnames = [
  39.             norm_encoding]
  40.     for modname in modnames:
  41.         if not modname or '.' in modname:
  42.             continue
  43.         
  44.         
  45.         try:
  46.             mod = __import__('encodings.' + modname, fromlist = _import_tail, level = 0)
  47.         except ImportError:
  48.             continue
  49.  
  50.     else:
  51.         mod = None
  52.     
  53.     try:
  54.         getregentry = mod.getregentry
  55.     except AttributeError:
  56.         mod = None
  57.  
  58.     if mod is None:
  59.         _cache[encoding] = None
  60.         return None
  61.     entry = getregentry()
  62.     _cache[encoding] = entry
  63.     
  64.     try:
  65.         codecaliases = mod.getaliases()
  66.     except AttributeError:
  67.         None if not isinstance(entry, codecs.CodecInfo) else mod is None
  68.         None if not isinstance(entry, codecs.CodecInfo) else mod is None
  69.     except:
  70.         None if not isinstance(entry, codecs.CodecInfo) else mod is None
  71.  
  72.     for alias in codecaliases:
  73.         if not _aliases.has_key(alias):
  74.             _aliases[alias] = modname
  75.             continue
  76.         None if not isinstance(entry, codecs.CodecInfo) else mod is None
  77.     
  78.     return entry
  79.  
  80. codecs.register(search_function)
  81.