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
Christian Heimes5d14c2b2007-11-20 23:38:09 +00009encode = codecs.utf_7_encode
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000010
Christian Heimes5d14c2b2007-11-20 23:38:09 +000011def decode(input, errors='strict'):
12 return codecs.utf_7_decode(input, errors, True)
Marc-André Lemburg35b0cb02001-09-20 12:56:14 +000013
Thomas Woutersa9773292006-04-21 09:43:23 +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):
Christian Heimes5d14c2b2007-11-20 23:38:09 +000019 _buffer_decode = codecs.utf_7_decode
Thomas Woutersa9773292006-04-21 09:43:23 +000020
Christian Heimes5d14c2b2007-11-20 23:38:09 +000021class StreamWriter(codecs.StreamWriter):
22 encode = codecs.utf_7_encode
Tim Peters469cdad2002-08-08 20:19:19 +000023
Christian Heimes5d14c2b2007-11-20 23:38:09 +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():
Thomas Woutersa9773292006-04-21 09:43:23 +000030 return codecs.CodecInfo(
31 name='utf-7',
Christian Heimes5d14c2b2007-11-20 23:38:09 +000032 encode=encode,
33 decode=decode,
Thomas Woutersa9773292006-04-21 09:43:23 +000034 incrementalencoder=IncrementalEncoder,
35 incrementaldecoder=IncrementalDecoder,
36 streamreader=StreamReader,
37 streamwriter=StreamWriter,
38 )