source: trunk/essentials/dev-lang/python/Lib/encodings/quopri_codec.py@ 3314

Last change on this file since 3314 was 3225, checked in by bird, 19 years ago

Python 2.5

File size: 2.0 KB
Line 
1"""Codec for quoted-printable encoding.
2
3Like base64 and rot13, this returns Python strings, not Unicode.
4"""
5
6import codecs, quopri
7try:
8 from cStringIO import StringIO
9except ImportError:
10 from StringIO import StringIO
11
12def 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
27def 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
42class 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
49class IncrementalEncoder(codecs.IncrementalEncoder):
50 def encode(self, input, final=False):
51 return quopri_encode(input, self.errors)[0]
52
53class IncrementalDecoder(codecs.IncrementalDecoder):
54 def decode(self, input, final=False):
55 return quopri_decode(input, self.errors)[0]
56
57class StreamWriter(Codec, codecs.StreamWriter):
58 pass
59
60class StreamReader(Codec,codecs.StreamReader):
61 pass
62
63# encodings module API
64
65def getregentry():
66 return codecs.CodecInfo(
67 name='quopri',
68 encode=quopri_encode,
69 decode=quopri_decode,
70 incrementalencoder=IncrementalEncoder,
71 incrementaldecoder=IncrementalDecoder,
72 streamwriter=StreamWriter,
73 streamreader=StreamReader,
74 )
Note: See TracBrowser for help on using the repository browser.