mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
Patch #1443155: Add the incremental codecs support for CJK codecs.
(reviewed by Walter Dörwald)
This commit is contained in:
parent
a531e5b84c
commit
e2ac4abd01
31 changed files with 1624 additions and 822 deletions
|
@ -2,10 +2,10 @@
|
|||
# gb2312.py: Python Unicode Codec for GB2312
|
||||
#
|
||||
# Written by Hye-Shik Chang <perky@FreeBSD.org>
|
||||
# $CJKCodecs: gb2312.py,v 1.8 2004/06/28 18:16:03 perky Exp $
|
||||
#
|
||||
|
||||
import _codecs_cn, codecs
|
||||
import _multibytecodec as mbc
|
||||
|
||||
codec = _codecs_cn.getcodec('gb2312')
|
||||
|
||||
|
@ -13,22 +13,24 @@ class Codec(codecs.Codec):
|
|||
encode = codec.encode
|
||||
decode = codec.decode
|
||||
|
||||
class StreamReader(Codec, codecs.StreamReader):
|
||||
def __init__(self, stream, errors='strict'):
|
||||
codecs.StreamReader.__init__(self, stream, errors)
|
||||
__codec = codec.StreamReader(stream, errors)
|
||||
self.read = __codec.read
|
||||
self.readline = __codec.readline
|
||||
self.readlines = __codec.readlines
|
||||
self.reset = __codec.reset
|
||||
|
||||
class StreamWriter(Codec, codecs.StreamWriter):
|
||||
def __init__(self, stream, errors='strict'):
|
||||
codecs.StreamWriter.__init__(self, stream, errors)
|
||||
__codec = codec.StreamWriter(stream, errors)
|
||||
self.write = __codec.write
|
||||
self.writelines = __codec.writelines
|
||||
self.reset = __codec.reset
|
||||
class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
|
||||
codecs.IncrementalEncoder):
|
||||
codec = codec
|
||||
class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
|
||||
codecs.IncrementalDecoder):
|
||||
codec = codec
|
||||
class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
|
||||
codec = codec
|
||||
class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
|
||||
codec = codec
|
||||
|
||||
def getregentry():
|
||||
return (codec.encode, codec.decode, StreamReader, StreamWriter)
|
||||
return codecs.CodecInfo(
|
||||
name='gb2312',
|
||||
encode=Codec().encode,
|
||||
decode=Codec().decode,
|
||||
incrementalencoder=IncrementalEncoder,
|
||||
incrementaldecoder=IncrementalDecoder,
|
||||
streamreader=StreamReader,
|
||||
streamwriter=StreamWriter,
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue