blob: a44ee7b6df2e86641dc48e6ef369b389217ee8ed [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"""
10import codecs
11
12### Codec APIs
13
14class Codec(codecs.Codec):
15
16 # Note: Binding these as C functions will result in the class not
17 # converting them to methods. This is intended.
18 encode = codecs.mbcs_encode
19 decode = codecs.mbcs_decode
20
Walter Dörwaldabb02e52006-03-15 11:35:15 +000021class IncrementalEncoder(codecs.IncrementalEncoder):
22 def encode(self, input, final=False):
Walter Dörwald13ed60b2006-03-15 13:36:50 +000023 return codecs.mbcs_encode(input,self.errors)[0]
Walter Dörwaldabb02e52006-03-15 11:35:15 +000024
Martin v. Löwisd8251432006-06-14 05:21:04 +000025class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
26 def _buffer_decode(self, input, errors, final):
27 return codecs.mbcs_decode(input,self.errors,final)
28
Guido van Rossum1abd82c2000-03-28 01:58:50 +000029class StreamWriter(Codec,codecs.StreamWriter):
30 pass
Tim Peters469cdad2002-08-08 20:19:19 +000031
Guido van Rossum1abd82c2000-03-28 01:58:50 +000032class StreamReader(Codec,codecs.StreamReader):
33 pass
34
35class StreamConverter(StreamWriter,StreamReader):
36
37 encode = codecs.mbcs_decode
38 decode = codecs.mbcs_encode
39
40### encodings module API
41
42def getregentry():
Walter Dörwaldabb02e52006-03-15 11:35:15 +000043 return codecs.CodecInfo(
44 name='mbcs',
45 encode=Codec.encode,
46 decode=Codec.decode,
47 incrementalencoder=IncrementalEncoder,
48 incrementaldecoder=IncrementalDecoder,
49 streamreader=StreamReader,
50 streamwriter=StreamWriter,
51 )