home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / encodings / utf_8_sig.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  4.0 KB  |  119 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  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.         else:
  32.             return codecs.utf_8_encode(input, self.errors)[0]
  33.  
  34.     
  35.     def reset(self):
  36.         codecs.IncrementalEncoder.reset(self)
  37.         self.first = True
  38.  
  39.  
  40.  
  41. class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
  42.     
  43.     def __init__(self, errors = 'strict'):
  44.         codecs.BufferedIncrementalDecoder.__init__(self, errors)
  45.         self.first = True
  46.  
  47.     
  48.     def _buffer_decode(self, input, errors, final):
  49.         if self.first:
  50.             if len(input) < 3:
  51.                 if codecs.BOM_UTF8.startswith(input):
  52.                     return (u'', 0)
  53.                 else:
  54.                     self.first = None
  55.             else:
  56.                 self.first = None
  57.                 if input[:3] == codecs.BOM_UTF8:
  58.                     (output, consumed) = codecs.utf_8_decode(input[3:], errors, final)
  59.                     return (output, consumed + 3)
  60.                 
  61.         
  62.         return codecs.utf_8_decode(input, errors, final)
  63.  
  64.     
  65.     def reset(self):
  66.         codecs.BufferedIncrementalDecoder.reset(self)
  67.         self.first = True
  68.  
  69.  
  70.  
  71. class StreamWriter(codecs.StreamWriter):
  72.     
  73.     def reset(self):
  74.         codecs.StreamWriter.reset(self)
  75.         
  76.         try:
  77.             del self.encode
  78.         except AttributeError:
  79.             pass
  80.  
  81.  
  82.     
  83.     def encode(self, input, errors = 'strict'):
  84.         self.encode = codecs.utf_8_encode
  85.         return encode(input, errors)
  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.         if len(input) < 3:
  103.             if codecs.BOM_UTF8.startswith(input):
  104.                 return (u'', 0)
  105.             
  106.         elif input[:3] == codecs.BOM_UTF8:
  107.             self.decode = codecs.utf_8_decode
  108.             (output, consumed) = codecs.utf_8_decode(input[3:], errors)
  109.             return (output, consumed + 3)
  110.         
  111.         self.decode = codecs.utf_8_decode
  112.         return codecs.utf_8_decode(input, errors)
  113.  
  114.  
  115.  
  116. def getregentry():
  117.     return codecs.CodecInfo(name = 'utf-8-sig', encode = encode, decode = decode, incrementalencoder = IncrementalEncoder, incrementaldecoder = IncrementalDecoder, streamreader = StreamReader, streamwriter = StreamWriter)
  118.  
  119.