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