1
"""Codec for quoted-printable encoding.
3
This codec de/encodes from bytes to bytes.
10
def quopri_encode(input, errors='strict'):
11
assert errors == 'strict'
14
quopri.encode(f, g, quotetabs=True)
15
return (g.getvalue(), len(input))
17
def quopri_decode(input, errors='strict'):
18
assert errors == 'strict'
22
return (g.getvalue(), len(input))
24
class Codec(codecs.Codec):
25
def encode(self, input, errors='strict'):
26
return quopri_encode(input, errors)
27
def decode(self, input, errors='strict'):
28
return quopri_decode(input, errors)
30
class IncrementalEncoder(codecs.IncrementalEncoder):
31
def encode(self, input, final=False):
32
return quopri_encode(input, self.errors)[0]
34
class IncrementalDecoder(codecs.IncrementalDecoder):
35
def decode(self, input, final=False):
36
return quopri_decode(input, self.errors)[0]
38
class StreamWriter(Codec, codecs.StreamWriter):
39
charbuffertype = bytes
41
class StreamReader(Codec, codecs.StreamReader):
42
charbuffertype = bytes
44
# encodings module API
47
return codecs.CodecInfo(
51
incrementalencoder=IncrementalEncoder,
52
incrementaldecoder=IncrementalDecoder,
53
streamwriter=StreamWriter,
54
streamreader=StreamReader,
55
_is_text_encoding=False,