py-cvs-rel2_1 (Rev 1.2) merge
[python/dscho.git] / Lib / encodings / quopri_codec.py
blob42074f4a09ca4603901c77c6b4bf70de59f7287b
1 """Codec for quoted-printable encoding.
3 Like base64 and rot13, this returns Python strings, not Unicode.
4 """
6 import codecs, quopri
7 try:
8 from cStringIO import StringIO
9 except ImportError:
10 from StringIO import StringIO
12 def quopri_encode(input, errors='strict'):
13 """Encode the input, returning a tuple (output object, length consumed).
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.
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))
27 def quopri_decode(input, errors='strict'):
28 """Decode the input, returning a tuple (output object, length consumed).
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.
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))
42 class Codec(codecs.Codec):
44 encode = quopri_encode
45 decode = quopri_decode
47 class StreamWriter(Codec, codecs.StreamWriter):
48 pass
50 class StreamReader(Codec,codecs.StreamReader):
51 pass
53 # encodings module API
55 def getregentry():
56 return (quopri_encode, quopri_decode, StreamReader, StreamWriter)