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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import codecs
  5.  
  6. def encode(input, errors = 'strict'):
  7.     return (codecs.BOM_UTF8 + codecs.utf_8_encode(input, errors)[0], len(input))
  8.  
  9.  
  10. def decode(input, errors = 'strict'):
  11.     prefix = 0
  12.     if input[:3] == codecs.BOM_UTF8:
  13.         input = input[3:]
  14.         prefix = 3
  15.     
  16.     (output, consumed) = codecs.utf_8_decode(input, errors, True)
  17.     return (output, consumed + prefix)
  18.  
  19.  
  20. class IncrementalEncoder(codecs.IncrementalEncoder):
  21.     
  22.     def __init__(self, errors = 'strict'):
  23.         codecs.IncrementalEncoder.__init__(self, errors)
  24.         self.first = True
  25.  
  26.     
  27.     def encode(self, input, final = False):
  28.         if self.first:
  29.             self.first = False
  30.             return codecs.BOM_UTF8 + codecs.utf_8_encode(input, self.errors)[0]
  31.         return codecs.utf_8_encode(input, self.errors)[0]
  32.  
  33.     
  34.     def reset(self):
  35.         codecs.IncrementalEncoder.reset(self)
  36.         self.first = True
  37.  
  38.  
  39.  
  40. class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
  41.     
  42.     def __init__(self, errors = 'strict'):
  43.         codecs.BufferedIncrementalDecoder.__init__(self, errors)
  44.         self.first = True
  45.  
  46.     
  47.     def _buffer_decode(self, input, errors, final):
  48.         if self.first:
  49.             if len(input) < 3:
  50.                 if codecs.BOM_UTF8.startswith(input):
  51.                     return (u'', 0)
  52.                 self.first = None
  53.             else:
  54.                 self.first = None
  55.                 if input[:3] == codecs.BOM_UTF8:
  56.                     (output, consumed) = codecs.utf_8_decode(input[3:], errors, final)
  57.                     return (output, consumed + 3)
  58.         
  59.         return codecs.utf_8_decode(input, errors, final)
  60.  
  61.     
  62.     def reset(self):
  63.         codecs.BufferedIncrementalDecoder.reset(self)
  64.         self.first = True
  65.  
  66.  
  67.  
  68. class StreamWriter(codecs.StreamWriter):
  69.     
  70.     def reset(self):
  71.         codecs.StreamWriter.reset(self)
  72.         
  73.         try:
  74.             del self.encode
  75.         except AttributeError:
  76.             pass
  77.  
  78.  
  79.     
  80.     def encode(self, input, errors = 'strict'):
  81.         self.encode = codecs.utf_8_encode
  82.         return encode(input, errors)
  83.  
  84.  
  85.  
  86. class StreamReader(codecs.StreamReader):
  87.     
  88.     def reset(self):
  89.         codecs.StreamReader.reset(self)
  90.         
  91.         try:
  92.             del self.decode
  93.         except AttributeError:
  94.             pass
  95.  
  96.  
  97.     
  98.     def decode(self, input, errors = 'strict'):
  99.         if len(input) < 3:
  100.             if codecs.BOM_UTF8.startswith(input):
  101.                 return (u'', 0)
  102.         elif input[:3] == codecs.BOM_UTF8:
  103.             self.decode = codecs.utf_8_decode
  104.             (output, consumed) = codecs.utf_8_decode(input[3:], errors)
  105.             return (output, consumed + 3)
  106.         self.decode = codecs.utf_8_decode
  107.         return codecs.utf_8_decode(input, errors)
  108.  
  109.  
  110.  
  111. def getregentry():
  112.     return codecs.CodecInfo(name = 'utf-8-sig', encode = encode, decode = decode, incrementalencoder = IncrementalEncoder, incrementaldecoder = IncrementalDecoder, streamreader = StreamReader, streamwriter = StreamWriter)
  113.  
  114.