14adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
24adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# big5.py: Python Unicode Codec for BIG5
34adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
44adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao# Written by Hye-Shik Chang <perky@FreeBSD.org>
54adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao#
64adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
74adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoimport _codecs_tw, codecs
84adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoimport _multibytecodec as mbc
94adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
104adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaocodec = _codecs_tw.getcodec('big5')
114adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
124adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclass Codec(codecs.Codec):
134adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    encode = codec.encode
144adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    decode = codec.decode
154adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
164adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclass IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
174adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                         codecs.IncrementalEncoder):
184adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    codec = codec
194adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
204adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclass IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
214adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao                         codecs.IncrementalDecoder):
224adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    codec = codec
234adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
244adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclass StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
254adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    codec = codec
264adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
274adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaoclass StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
284adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    codec = codec
294adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao
304adfde8bc82dd39f59e0445588c3e599ada477dJosh Gaodef getregentry():
314adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    return codecs.CodecInfo(
324adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        name='big5',
334adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        encode=Codec().encode,
344adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        decode=Codec().decode,
354adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        incrementalencoder=IncrementalEncoder,
364adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        incrementaldecoder=IncrementalDecoder,
374adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        streamreader=StreamReader,
384adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao        streamwriter=StreamWriter,
394adfde8bc82dd39f59e0445588c3e599ada477dJosh Gao    )
40