1#
2# gb2312.py: Python Unicode Codec for GB2312
3#
4# Written by Hye-Shik Chang <perky@FreeBSD.org>
5#
6
7import _codecs_cn, codecs
8import _multibytecodec as mbc
9
10codec = _codecs_cn.getcodec('gb2312')
11
12class Codec(codecs.Codec):
13    encode = codec.encode
14    decode = codec.decode
15
16class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17                         codecs.IncrementalEncoder):
18    codec = codec
19
20class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21                         codecs.IncrementalDecoder):
22    codec = codec
23
24class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25    codec = codec
26
27class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28    codec = codec
29
30def getregentry():
31    return codecs.CodecInfo(
32        name='gb2312',
33        encode=Codec().encode,
34        decode=Codec().decode,
35        incrementalencoder=IncrementalEncoder,
36        incrementaldecoder=IncrementalDecoder,
37        streamreader=StreamReader,
38        streamwriter=StreamWriter,
39    )
40