blob: 8e0567f2087d65e33b3152b8240bcaf703d855fb [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
Amaury Forgeot d'Arc50879802007-11-20 23:31:27 +00009encode = codecs.utf_7_encode
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000010
Amaury Forgeot d'Arc50879802007-11-20 23:31:27 +000011def decode(input, errors='strict'):
12 return codecs.utf_7_decode(input, errors, True)
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000013
Walter Dörwaldabb02e52006-03-15 11:35:15 +000014class IncrementalEncoder(codecs.IncrementalEncoder):
15 def encode(self, input, final=False):
16 return codecs.utf_7_encode(input, self.errors)[0]
17
18class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
Amaury Forgeot d'Arc50879802007-11-20 23:31:27 +000019 _buffer_decode = codecs.utf_7_decode
Walter Dörwaldabb02e52006-03-15 11:35:15 +000020
Amaury Forgeot d'Arc50879802007-11-20 23:31:27 +000021class StreamWriter(codecs.StreamWriter):
22 encode = codecs.utf_7_encode
Tim Peters469cdad2002-08-08 20:19:19 +000023
Amaury Forgeot d'Arc50879802007-11-20 23:31:27 +000024class StreamReader(codecs.StreamReader):
25 decode = codecs.utf_7_decode
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000026
27### encodings module API
28
29def getregentry():
Walter Dörwaldabb02e52006-03-15 11:35:15 +000030 return codecs.CodecInfo(
31 name='utf-7',
Amaury Forgeot d'Arc50879802007-11-20 23:31:27 +000032 encode=encode,
33 decode=decode,
Walter Dörwaldabb02e52006-03-15 11:35:15 +000034 incrementalencoder=IncrementalEncoder,
35 incrementaldecoder=IncrementalDecoder,
36 streamreader=StreamReader,
37 streamwriter=StreamWriter,
Tim Petersf99b8162006-03-15 18:08:37 +000038 )