blob: 7b11d59389d8b5050042955b6c8a1895802c3f28 [file] [log] [blame]
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +00001""" Python 'utf-7' Codec
2
3Written by Brian Quinlan (brian@sweetapp.com).
4"""
5import codecs
6
7### Codec APIs
8
9class Codec(codecs.Codec):
10
11 # Note: Binding these as C functions will result in the class not
12 # converting them to methods. This is intended.
13 encode = codecs.utf_7_encode
14 decode = codecs.utf_7_decode
15
Walter Dörwaldabb02e52006-03-15 11:35:15 +000016class IncrementalEncoder(codecs.IncrementalEncoder):
17 def encode(self, input, final=False):
18 return codecs.utf_7_encode(input, self.errors)[0]
19
20class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
21 def _buffer_decode(self, input, errors, final):
22 return codecs.utf_7_decode(input, self.errors)
23
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000024class StreamWriter(Codec,codecs.StreamWriter):
25 pass
Tim Peters469cdad2002-08-08 20:19:19 +000026
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000027class StreamReader(Codec,codecs.StreamReader):
28 pass
29
30### encodings module API
31
32def getregentry():
Walter Dörwaldabb02e52006-03-15 11:35:15 +000033 return codecs.CodecInfo(
34 name='utf-7',
35 encode=Codec.encode,
36 decode=Codec.decode,
37 incrementalencoder=IncrementalEncoder,
38 incrementaldecoder=IncrementalDecoder,
39 streamreader=StreamReader,
40 streamwriter=StreamWriter,
41 )