NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

quopri_codec.py (1472B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\encodings\quopri_codec.py
      2 import codecs, quopri
      3 try:
      4     from cStringIO import StringIO
      5 except ImportError:
      6     from StringIO import StringIO
      7 
      8 def quopri_encode(input, errors = 'strict'):
      9     f = StringIO(str(input))
     10     g = StringIO()
     11     quopri.encode(f, g, 1)
     12     output = g.getvalue()
     13     return (output, len(input))
     14 
     15 
     16 def quopri_decode(input, errors = 'strict'):
     17     f = StringIO(str(input))
     18     g = StringIO()
     19     quopri.decode(f, g)
     20     output = g.getvalue()
     21     return (output, len(input))
     22 
     23 
     24 class Codec(codecs.Codec):
     25 
     26     def encode(self, input, errors = 'strict'):
     27         return quopri_encode(input, errors)
     28 
     29     def decode(self, input, errors = 'strict'):
     30         return quopri_decode(input, errors)
     31 
     32 
     33 class IncrementalEncoder(codecs.IncrementalEncoder):
     34 
     35     def encode(self, input, final = False):
     36         return quopri_encode(input, self.errors)[0]
     37 
     38 
     39 class IncrementalDecoder(codecs.IncrementalDecoder):
     40 
     41     def decode(self, input, final = False):
     42         return quopri_decode(input, self.errors)[0]
     43 
     44 
     45 class StreamWriter(Codec, codecs.StreamWriter):
     46     pass
     47 
     48 
     49 class StreamReader(Codec, codecs.StreamReader):
     50     pass
     51 
     52 
     53 def getregentry():
     54     return codecs.CodecInfo(name='quopri', encode=quopri_encode, decode=quopri_decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamwriter=StreamWriter, streamreader=StreamReader)