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

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