blob: baf46cbd4836bda6bb8ddccff7c282048383e0a2 [file] [log] [blame]
Guido van Rossum1abd82c2000-03-28 01:58:50 +00001""" Python 'mbcs' Codec for Windows
2
3
4Cloned by Mark Hammond (mhammond@skippinet.com.au) from ascii.py,
5which was written by Marc-Andre Lemburg (mal@lemburg.com).
6
7(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
8
9"""
Martin v. Löwis0eac1182006-06-15 06:45:05 +000010# Import them explicitly to cause an ImportError
11# on non-Windows systems
12from codecs import mbcs_encode, mbcs_decode
13# for IncrementalDecoder, IncrementalEncoder, ...
Guido van Rossum1abd82c2000-03-28 01:58:50 +000014import codecs
15
16### Codec APIs
17
Martin v. Löwis961b91b2006-08-02 13:53:55 +000018encode = mbcs_encode
Guido van Rossum1abd82c2000-03-28 01:58:50 +000019
Martin v. Löwis961b91b2006-08-02 13:53:55 +000020def decode(input, errors='strict'):
21 return mbcs_decode(input, errors, True)
Guido van Rossum1abd82c2000-03-28 01:58:50 +000022
Walter Dörwaldabb02e52006-03-15 11:35:15 +000023class IncrementalEncoder(codecs.IncrementalEncoder):
24 def encode(self, input, final=False):
Martin v. Löwis961b91b2006-08-02 13:53:55 +000025 return mbcs_encode(input, self.errors)[0]
Walter Dörwaldabb02e52006-03-15 11:35:15 +000026
Martin v. Löwisd8251432006-06-14 05:21:04 +000027class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
Martin v. Löwis961b91b2006-08-02 13:53:55 +000028 _buffer_decode = mbcs_decode
Martin v. Löwisd8251432006-06-14 05:21:04 +000029
Martin v. Löwis961b91b2006-08-02 13:53:55 +000030class StreamWriter(codecs.StreamWriter):
31 encode = mbcs_encode
Tim Peters469cdad2002-08-08 20:19:19 +000032
Martin v. Löwis961b91b2006-08-02 13:53:55 +000033class StreamReader(codecs.StreamReader):
34 decode = mbcs_decode
Guido van Rossum1abd82c2000-03-28 01:58:50 +000035
36### encodings module API
37
38def getregentry():
Walter Dörwaldabb02e52006-03-15 11:35:15 +000039 return codecs.CodecInfo(
40 name='mbcs',
Martin v. Löwis961b91b2006-08-02 13:53:55 +000041 encode=encode,
42 decode=decode,
Walter Dörwaldabb02e52006-03-15 11:35:15 +000043 incrementalencoder=IncrementalEncoder,
44 incrementaldecoder=IncrementalDecoder,
45 streamreader=StreamReader,
46 streamwriter=StreamWriter,
47 )