home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / encodings / utf_16.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  4.5 KB  |  117 lines

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