1 #
2 # shift_jis.py: Python Unicode Codec for SHIFT_JIS
3 #
4 # Written by Hye-Shik Chang <perky@FreeBSD.org>
5 #
6 
7 import _codecs_jp, codecs
8 import _multibytecodec as mbc
9 
10 codec = _codecs_jp.getcodec('shift_jis')
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='shift_jis',
33         encode=Codec().encode,
34         decode=Codec().decode,
35         incrementalencoder=IncrementalEncoder,
36         incrementaldecoder=IncrementalDecoder,
37         streamreader=StreamReader,
38         streamwriter=StreamWriter,
39     )
40