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