home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / quopri_codec.py < prev    next >
Text File  |  2003-12-30  |  2KB  |  59 lines

  1. """Codec for quoted-printable encoding.
  2.  
  3. Like base64 and rot13, this returns Python strings, not Unicode.
  4. """
  5.  
  6. import codecs, quopri
  7. try:
  8.     from cStringIO import StringIO
  9. except ImportError:
  10.     from StringIO import StringIO
  11.  
  12. def quopri_encode(input, errors='strict'):
  13.     """Encode the input, returning a tuple (output object, length consumed).
  14.  
  15.     errors defines the error handling to apply. It defaults to
  16.     'strict' handling which is the only currently supported
  17.     error handling for this codec.
  18.  
  19.     """
  20.     assert errors == 'strict'
  21.     f = StringIO(input)
  22.     g = StringIO()
  23.     quopri.encode(f, g, 1)
  24.     output = g.getvalue()
  25.     return (output, len(input))
  26.  
  27. def quopri_decode(input, errors='strict'):
  28.     """Decode the input, returning a tuple (output object, length consumed).
  29.  
  30.     errors defines the error handling to apply. It defaults to
  31.     'strict' handling which is the only currently supported
  32.     error handling for this codec.
  33.  
  34.     """
  35.     assert errors == 'strict'
  36.     f = StringIO(input)
  37.     g = StringIO()
  38.     quopri.decode(f, g)
  39.     output = g.getvalue()
  40.     return (output, len(input))
  41.  
  42. class Codec(codecs.Codec):
  43.  
  44.     def encode(self, input,errors='strict'):
  45.         return quopri_encode(input,errors)
  46.     def decode(self, input,errors='strict'):
  47.         return quopri_decode(input,errors)
  48.  
  49. class StreamWriter(Codec, codecs.StreamWriter):
  50.     pass
  51.  
  52. class StreamReader(Codec,codecs.StreamReader):
  53.     pass
  54.  
  55. # encodings module API
  56.  
  57. def getregentry():
  58.     return (quopri_encode, quopri_decode, StreamReader, StreamWriter)
  59.