Bring CJKCodecs 1.1 into trunk. This completely reorganizes source
and installed layouts to make maintenance simple and easy. And it
also adds four new codecs; big5hkscs, euc-jis-2004, shift-jis-2004
and iso2022-jp-2004.
diff --git a/Lib/encodings/aliases.py b/Lib/encodings/aliases.py
index 579cf17..79f3cc6 100644
--- a/Lib/encodings/aliases.py
+++ b/Lib/encodings/aliases.py
@@ -39,6 +39,10 @@
'big5_tw' : 'big5',
'csbig5' : 'big5',
+ # big5hkscs codec
+ 'big5_hkscs' : 'big5hkscs',
+ 'hkscs' : 'big5hkscs',
+
# bz2_codec codec
'bz2' : 'bz2_codec',
@@ -197,8 +201,12 @@
'950' : 'cp950',
'ms950' : 'cp950',
+ # euc_jis_2004 codec
+ 'jisx0213' : 'euc_jis_2004',
+ 'eucjis2004' : 'euc_jis_2004',
+ 'euc_jis2004' : 'euc_jis_2004',
+
# euc_jisx0213 codec
- 'jisx0213' : 'euc_jisx0213',
'eucjisx0213' : 'euc_jisx0213',
# euc_jp codec
@@ -254,6 +262,10 @@
'iso2022jp_2' : 'iso2022_jp_2',
'iso_2022_jp_2' : 'iso2022_jp_2',
+ # iso2022_jp_2004 codec
+ 'iso_2022_jp_2004' : 'iso2022_jp_2004',
+ 'iso2022jp_2004' : 'iso2022_jp_2004',
+
# iso2022_jp_3 codec
'iso2022jp_3' : 'iso2022_jp_3',
'iso_2022_jp_3' : 'iso2022_jp_3',
@@ -416,6 +428,11 @@
'sjis' : 'shift_jis',
's_jis' : 'shift_jis',
+ # shift_jis_2004 codec
+ 'shiftjis2004' : 'shift_jis_2004',
+ 'sjis_2004' : 'shift_jis_2004',
+ 's_jis_2004' : 'shift_jis_2004',
+
# shift_jisx0213 codec
'shiftjisx0213' : 'shift_jisx0213',
'sjisx0213' : 'shift_jisx0213',
diff --git a/Lib/encodings/big5.py b/Lib/encodings/big5.py
index 0f855f8..d56aa1b 100644
--- a/Lib/encodings/big5.py
+++ b/Lib/encodings/big5.py
@@ -2,11 +2,12 @@
# big5.py: Python Unicode Codec for BIG5
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: big5.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: big5.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_big5 import codec
-import codecs
+import _codecs_tw, codecs
+
+codec = _codecs_tw.getcodec('big5')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/big5hkscs.py b/Lib/encodings/big5hkscs.py
new file mode 100644
index 0000000..443997f
--- /dev/null
+++ b/Lib/encodings/big5hkscs.py
@@ -0,0 +1,34 @@
+#
+# big5hkscs.py: Python Unicode Codec for BIG5HKSCS
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+# $CJKCodecs: big5hkscs.py,v 1.1 2004/06/29 05:14:27 perky Exp $
+#
+
+import _codecs_hk, codecs
+
+codec = _codecs_hk.getcodec('big5hkscs')
+
+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
+
+def getregentry():
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/cp932.py b/Lib/encodings/cp932.py
index 028832d..38937f5 100644
--- a/Lib/encodings/cp932.py
+++ b/Lib/encodings/cp932.py
@@ -2,11 +2,12 @@
# cp932.py: Python Unicode Codec for CP932
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: cp932.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: cp932.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_cp932 import codec
-import codecs
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('cp932')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/cp949.py b/Lib/encodings/cp949.py
index c499d20..0f3c847 100644
--- a/Lib/encodings/cp949.py
+++ b/Lib/encodings/cp949.py
@@ -2,11 +2,12 @@
# cp949.py: Python Unicode Codec for CP949
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: cp949.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: cp949.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_cp949 import codec
-import codecs
+import _codecs_kr, codecs
+
+codec = _codecs_kr.getcodec('cp949')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/cp950.py b/Lib/encodings/cp950.py
index 104651d..dab3e28 100644
--- a/Lib/encodings/cp950.py
+++ b/Lib/encodings/cp950.py
@@ -2,11 +2,12 @@
# cp950.py: Python Unicode Codec for CP950
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: cp950.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: cp950.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_cp950 import codec
-import codecs
+import _codecs_tw, codecs
+
+codec = _codecs_tw.getcodec('cp950')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/euc_jis_2004.py b/Lib/encodings/euc_jis_2004.py
new file mode 100644
index 0000000..02d55ca
--- /dev/null
+++ b/Lib/encodings/euc_jis_2004.py
@@ -0,0 +1,34 @@
+#
+# euc_jis_2004.py: Python Unicode Codec for EUC_JIS_2004
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+# $CJKCodecs: euc_jis_2004.py,v 1.1 2004/07/07 16:18:25 perky Exp $
+#
+
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('euc_jis_2004')
+
+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
+
+def getregentry():
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/euc_jisx0213.py b/Lib/encodings/euc_jisx0213.py
index 9da6b99..30f173e 100644
--- a/Lib/encodings/euc_jisx0213.py
+++ b/Lib/encodings/euc_jisx0213.py
@@ -2,11 +2,12 @@
# euc_jisx0213.py: Python Unicode Codec for EUC_JISX0213
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: euc_jisx0213.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: euc_jisx0213.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_euc_jisx0213 import codec
-import codecs
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('euc_jisx0213')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/euc_jp.py b/Lib/encodings/euc_jp.py
index 77fe2b6..a3947a3 100644
--- a/Lib/encodings/euc_jp.py
+++ b/Lib/encodings/euc_jp.py
@@ -2,11 +2,12 @@
# euc_jp.py: Python Unicode Codec for EUC_JP
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: euc_jp.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: euc_jp.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_euc_jp import codec
-import codecs
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('euc_jp')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/euc_kr.py b/Lib/encodings/euc_kr.py
index 9ef155e..bbebee8 100644
--- a/Lib/encodings/euc_kr.py
+++ b/Lib/encodings/euc_kr.py
@@ -2,11 +2,12 @@
# euc_kr.py: Python Unicode Codec for EUC_KR
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: euc_kr.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: euc_kr.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_euc_kr import codec
-import codecs
+import _codecs_kr, codecs
+
+codec = _codecs_kr.getcodec('euc_kr')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/gb18030.py b/Lib/encodings/gb18030.py
index f628af3..7eca319 100644
--- a/Lib/encodings/gb18030.py
+++ b/Lib/encodings/gb18030.py
@@ -2,11 +2,12 @@
# gb18030.py: Python Unicode Codec for GB18030
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: gb18030.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: gb18030.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_gb18030 import codec
-import codecs
+import _codecs_cn, codecs
+
+codec = _codecs_cn.getcodec('gb18030')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/gb2312.py b/Lib/encodings/gb2312.py
index 7ced701..5130efa 100644
--- a/Lib/encodings/gb2312.py
+++ b/Lib/encodings/gb2312.py
@@ -2,11 +2,12 @@
# gb2312.py: Python Unicode Codec for GB2312
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: gb2312.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: gb2312.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_gb2312 import codec
-import codecs
+import _codecs_cn, codecs
+
+codec = _codecs_cn.getcodec('gb2312')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/gbk.py b/Lib/encodings/gbk.py
index f5e32e5..67854bc 100644
--- a/Lib/encodings/gbk.py
+++ b/Lib/encodings/gbk.py
@@ -2,11 +2,12 @@
# gbk.py: Python Unicode Codec for GBK
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: gbk.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: gbk.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_gbk import codec
-import codecs
+import _codecs_cn, codecs
+
+codec = _codecs_cn.getcodec('gbk')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/hz.py b/Lib/encodings/hz.py
index 0278ce5..3940894 100644
--- a/Lib/encodings/hz.py
+++ b/Lib/encodings/hz.py
@@ -2,11 +2,12 @@
# hz.py: Python Unicode Codec for HZ
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: hz.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: hz.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_hz import codec
-import codecs
+import _codecs_cn, codecs
+
+codec = _codecs_cn.getcodec('hz')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_jp.py b/Lib/encodings/iso2022_jp.py
index a23a13a..109658b 100644
--- a/Lib/encodings/iso2022_jp.py
+++ b/Lib/encodings/iso2022_jp.py
@@ -1,12 +1,13 @@
#
-# iso2022_jp.py: Python Unicode Codec for ISO_2022_JP
+# iso2022_jp.py: Python Unicode Codec for ISO2022_JP
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: iso2022_jp.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: iso2022_jp.py,v 1.2 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_iso2022_jp import codec
-import codecs
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_jp')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_jp_1.py b/Lib/encodings/iso2022_jp_1.py
index 6050e5f..201bd28 100644
--- a/Lib/encodings/iso2022_jp_1.py
+++ b/Lib/encodings/iso2022_jp_1.py
@@ -1,12 +1,13 @@
#
-# iso2022_jp_1.py: Python Unicode Codec for ISO_2022_JP_1
+# iso2022_jp_1.py: Python Unicode Codec for ISO2022_JP_1
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: iso2022_jp_1.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: iso2022_jp_1.py,v 1.2 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_iso2022_jp_1 import codec
-import codecs
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_1')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_jp_2.py b/Lib/encodings/iso2022_jp_2.py
index 6171710..7a61018 100644
--- a/Lib/encodings/iso2022_jp_2.py
+++ b/Lib/encodings/iso2022_jp_2.py
@@ -1,12 +1,13 @@
#
-# iso2022_jp_2.py: Python Unicode Codec for ISO_2022_JP_2
+# iso2022_jp_2.py: Python Unicode Codec for ISO2022_JP_2
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: iso2022_jp_2.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: iso2022_jp_2.py,v 1.2 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_iso2022_jp_2 import codec
-import codecs
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_2')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_jp_2004.py b/Lib/encodings/iso2022_jp_2004.py
new file mode 100644
index 0000000..2497124
--- /dev/null
+++ b/Lib/encodings/iso2022_jp_2004.py
@@ -0,0 +1,34 @@
+#
+# iso2022_jp_2004.py: Python Unicode Codec for ISO2022_JP_2004
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+# $CJKCodecs: iso2022_jp_2004.py,v 1.1 2004/07/07 16:18:25 perky Exp $
+#
+
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_2004')
+
+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
+
+def getregentry():
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_jp_3.py b/Lib/encodings/iso2022_jp_3.py
index 144f83e..8b2ed00 100644
--- a/Lib/encodings/iso2022_jp_3.py
+++ b/Lib/encodings/iso2022_jp_3.py
@@ -1,12 +1,13 @@
#
-# iso2022_jp_3.py: Python Unicode Codec for ISO_2022_JP_3
+# iso2022_jp_3.py: Python Unicode Codec for ISO2022_JP_3
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: iso2022_jp_3.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: iso2022_jp_3.py,v 1.2 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_iso2022_jp_3 import codec
-import codecs
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_3')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_jp_ext.py b/Lib/encodings/iso2022_jp_ext.py
index 7adf758..97cb4e7 100644
--- a/Lib/encodings/iso2022_jp_ext.py
+++ b/Lib/encodings/iso2022_jp_ext.py
@@ -1,12 +1,13 @@
#
-# iso2022_jp_ext.py: Python Unicode Codec for ISO_2022_JP_EXT
+# iso2022_jp_ext.py: Python Unicode Codec for ISO2022_JP_EXT
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: iso2022_jp_ext.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: iso2022_jp_ext.py,v 1.2 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_iso2022_jp_ext import codec
-import codecs
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_jp_ext')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/iso2022_kr.py b/Lib/encodings/iso2022_kr.py
index ead7ff5..f5549ca 100644
--- a/Lib/encodings/iso2022_kr.py
+++ b/Lib/encodings/iso2022_kr.py
@@ -1,12 +1,13 @@
#
-# iso2022_kr.py: Python Unicode Codec for ISO_2022_KR
+# iso2022_kr.py: Python Unicode Codec for ISO2022_KR
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: iso2022_kr.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: iso2022_kr.py,v 1.2 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_iso2022_kr import codec
-import codecs
+import _codecs_iso2022, codecs
+
+codec = _codecs_iso2022.getcodec('iso2022_kr')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/johab.py b/Lib/encodings/johab.py
index 720195e..b6a87d7 100644
--- a/Lib/encodings/johab.py
+++ b/Lib/encodings/johab.py
@@ -2,11 +2,12 @@
# johab.py: Python Unicode Codec for JOHAB
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: johab.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: johab.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_johab import codec
-import codecs
+import _codecs_kr, codecs
+
+codec = _codecs_kr.getcodec('johab')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/shift_jis.py b/Lib/encodings/shift_jis.py
index d235c1e..ec5e517 100644
--- a/Lib/encodings/shift_jis.py
+++ b/Lib/encodings/shift_jis.py
@@ -2,11 +2,12 @@
# shift_jis.py: Python Unicode Codec for SHIFT_JIS
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: shift_jis.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: shift_jis.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_shift_jis import codec
-import codecs
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('shift_jis')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/shift_jis_2004.py b/Lib/encodings/shift_jis_2004.py
new file mode 100644
index 0000000..446cd7c
--- /dev/null
+++ b/Lib/encodings/shift_jis_2004.py
@@ -0,0 +1,34 @@
+#
+# shift_jis_2004.py: Python Unicode Codec for SHIFT_JIS_2004
+#
+# Written by Hye-Shik Chang <perky@FreeBSD.org>
+# $CJKCodecs: shift_jis_2004.py,v 1.1 2004/07/07 16:18:25 perky Exp $
+#
+
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('shift_jis_2004')
+
+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
+
+def getregentry():
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/encodings/shift_jisx0213.py b/Lib/encodings/shift_jisx0213.py
index 8759c8c..495468b 100644
--- a/Lib/encodings/shift_jisx0213.py
+++ b/Lib/encodings/shift_jisx0213.py
@@ -2,11 +2,12 @@
# shift_jisx0213.py: Python Unicode Codec for SHIFT_JISX0213
#
# Written by Hye-Shik Chang <perky@FreeBSD.org>
-# $CJKCodecs: shift_jisx0213.py,v 1.3 2004/01/17 11:26:10 perky Exp $
+# $CJKCodecs: shift_jisx0213.py,v 1.8 2004/06/28 18:16:03 perky Exp $
#
-from _codecs_shift_jisx0213 import codec
-import codecs
+import _codecs_jp, codecs
+
+codec = _codecs_jp.getcodec('shift_jisx0213')
class Codec(codecs.Codec):
encode = codec.encode
@@ -30,4 +31,4 @@
self.reset = __codec.reset
def getregentry():
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return (codec.encode, codec.decode, StreamReader, StreamWriter)
diff --git a/Lib/test/cjkencodings_test.py b/Lib/test/cjkencodings_test.py
index 8bd0ee7..f5f9a377 100644
--- a/Lib/test/cjkencodings_test.py
+++ b/Lib/test/cjkencodings_test.py
@@ -63,6 +63,9 @@
"\x88\x91\xe5\x80\x91\xe6\x89\x80\x0a\xe8\xa6\x81\xe8\xa8\x8e\xe8"
"\xab\x96\xe7\x9a\x84\xe5\x95\x8f\xe9\xa1\x8c\xe5\xb0\xb1\xe6\x98"
"\xaf\x3a\x0a\x0a"),
+'big5hkscs': (
+"\x88\x45\x88\x5c\x8a\x73\x8b\xda\x8d\xd8\x0a",
+"\xf0\xa0\x84\x8c\xc4\x9a\xe9\xb5\xae\xe7\xbd\x93\xe6\xb4\x86\x0a"),
'cp949': (
"\x8c\x63\xb9\xe6\xb0\xa2\xc7\xcf\x20\xbc\x84\xbd\xc3\xc4\xdd\xb6"
"\xf3\x0a\x0a\xa8\xc0\xa8\xc0\xb3\xb3\x21\x21\x20\xec\xd7\xce\xfa"
diff --git a/Lib/test/test_codecencodings_cn.py b/Lib/test/test_codecencodings_cn.py
index 269e00a..6d71218 100644
--- a/Lib/test/test_codecencodings_cn.py
+++ b/Lib/test/test_codecencodings_cn.py
@@ -3,7 +3,7 @@
# test_codecencodings_cn.py
# Codec encoding tests for PRC encodings.
#
-# $CJKCodecs: test_codecencodings_cn.py,v 1.1 2003/12/19 03:00:05 perky Exp $
+# $CJKCodecs: test_codecencodings_cn.py,v 1.2 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
@@ -27,8 +27,8 @@
tstring = test_multibytecodec_support.load_teststring('gbk')
codectests = (
# invalid bytes
- ("abc\x80\x80\xc1\xc4", "strict", None),
- ("abc\xc8", "strict", None),
+ ("abc\x80\x80\xc1\xc4", "strict", None),
+ ("abc\xc8", "strict", None),
("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\u804a"),
("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\u804a\ufffd"),
("abc\x80\x80\xc1\xc4", "ignore", u"abc\u804a"),
diff --git a/Lib/test/test_codecencodings_hk.py b/Lib/test/test_codecencodings_hk.py
new file mode 100644
index 0000000..e7fad90
--- /dev/null
+++ b/Lib/test/test_codecencodings_hk.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+#
+# test_codecencodings_hk.py
+# Codec encoding tests for HongKong encodings.
+#
+# $CJKCodecs: test_codecencodings_hk.py,v 1.1 2004/07/10 17:35:20 perky Exp $
+
+from test import test_support
+from test import test_multibytecodec_support
+import unittest
+
+class Test_Big5HKSCS(test_multibytecodec_support.TestBase, unittest.TestCase):
+ encoding = 'big5hkscs'
+ tstring = test_multibytecodec_support.load_teststring('big5hkscs')
+ codectests = (
+ # invalid bytes
+ ("abc\x80\x80\xc1\xc4", "strict", None),
+ ("abc\xc8", "strict", None),
+ ("abc\x80\x80\xc1\xc4", "replace", u"abc\ufffd\u8b10"),
+ ("abc\x80\x80\xc1\xc4\xc8", "replace", u"abc\ufffd\u8b10\ufffd"),
+ ("abc\x80\x80\xc1\xc4", "ignore", u"abc\u8b10"),
+ )
+
+def test_main():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(Test_Big5HKSCS))
+ test_support.run_suite(suite)
+
+if __name__ == "__main__":
+ test_main()
diff --git a/Lib/test/test_codecencodings_jp.py b/Lib/test/test_codecencodings_jp.py
index f574511..483b7db 100644
--- a/Lib/test/test_codecencodings_jp.py
+++ b/Lib/test/test_codecencodings_jp.py
@@ -3,7 +3,7 @@
# test_codecencodings_jp.py
# Codec encoding tests for Japanese encodings.
#
-# $CJKCodecs: test_codecencodings_jp.py,v 1.2 2004/01/06 09:25:37 perky Exp $
+# $CJKCodecs: test_codecencodings_jp.py,v 1.3 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
@@ -64,16 +64,6 @@
(u"\u203e", "strict", "\x7e"),
)
-class Test_EUC_JP_STRICT(test_multibytecodec_support.TestBase,
- unittest.TestCase):
- encoding = 'euc_jp_strict'
- tstring = test_multibytecodec_support.load_teststring('euc_jp')
- codectests = eucjp_commontests + (
- ("\xa1\xc0\\", "strict", u"\\\\"),
- (u"\xa5", "strict", None),
- (u"\u203e", "strict", None),
- )
-
shiftjis_commonenctests = (
("abc\x80\x80\x82\x84", "strict", None),
("abc\xf8", "strict", None),
@@ -90,14 +80,6 @@
("\x81\x5f\x81\x61\x81\x7c", "strict", u"\uff3c\u2016\u2212"),
)
-class Test_SJIS_STRICT(test_multibytecodec_support.TestBase, unittest.TestCase):
- encoding = 'shift_jis_strict'
- tstring = test_multibytecodec_support.load_teststring('shift_jis')
- codectests = shiftjis_commonenctests + (
- ("\\\x7e", "replace", u"\xa5\u203e"),
- ("\x81\x5f\x81\x61\x81\x7c", "replace", u"\x5c\u2016\u2212"),
- )
-
class Test_SJISX0213(test_multibytecodec_support.TestBase, unittest.TestCase):
encoding = 'shift_jisx0213'
tstring = test_multibytecodec_support.load_teststring('shift_jisx0213')
@@ -123,9 +105,6 @@
suite.addTest(unittest.makeSuite(Test_EUC_JISX0213))
suite.addTest(unittest.makeSuite(Test_EUC_JP_COMPAT))
suite.addTest(unittest.makeSuite(Test_SJIS_COMPAT))
- if test_multibytecodec_support.__cjkcodecs__:
- suite.addTest(unittest.makeSuite(Test_EUC_JP_STRICT))
- suite.addTest(unittest.makeSuite(Test_SJIS_STRICT))
suite.addTest(unittest.makeSuite(Test_SJISX0213))
test_support.run_suite(suite)
diff --git a/Lib/test/test_codecencodings_kr.py b/Lib/test/test_codecencodings_kr.py
index 449237d..489c9f1 100644
--- a/Lib/test/test_codecencodings_kr.py
+++ b/Lib/test/test_codecencodings_kr.py
@@ -3,7 +3,7 @@
# test_codecencodings_kr.py
# Codec encoding tests for ROK encodings.
#
-# $CJKCodecs: test_codecencodings_kr.py,v 1.1 2003/12/19 03:00:06 perky Exp $
+# $CJKCodecs: test_codecencodings_kr.py,v 1.2 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
diff --git a/Lib/test/test_codecencodings_tw.py b/Lib/test/test_codecencodings_tw.py
index 897f060..fb8a4d0 100644
--- a/Lib/test/test_codecencodings_tw.py
+++ b/Lib/test/test_codecencodings_tw.py
@@ -3,7 +3,7 @@
# test_codecencodings_tw.py
# Codec encoding tests for ROC encodings.
#
-# $CJKCodecs: test_codecencodings_tw.py,v 1.1 2003/12/19 03:00:06 perky Exp $
+# $CJKCodecs: test_codecencodings_tw.py,v 1.2 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
diff --git a/Lib/test/test_codecmaps_cn.py b/Lib/test/test_codecmaps_cn.py
index 337ac91..31871e2 100644
--- a/Lib/test/test_codecmaps_cn.py
+++ b/Lib/test/test_codecmaps_cn.py
@@ -3,7 +3,7 @@
# test_codecmaps_cn.py
# Codec mapping tests for PRC encodings
#
-# $CJKCodecs: test_codecmaps_cn.py,v 1.2 2004/01/17 12:47:19 perky Exp $
+# $CJKCodecs: test_codecmaps_cn.py,v 1.3 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
diff --git a/Lib/test/test_codecmaps_hk.py b/Lib/test/test_codecmaps_hk.py
new file mode 100644
index 0000000..43137b6
--- /dev/null
+++ b/Lib/test/test_codecmaps_hk.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+#
+# test_codecmaps_hk.py
+# Codec mapping tests for HongKong encodings
+#
+# $CJKCodecs: test_codecmaps_hk.py,v 1.1 2004/07/10 17:35:20 perky Exp $
+
+from test import test_support
+from test import test_multibytecodec_support
+import unittest
+
+class TestBig5HKSCSMap(test_multibytecodec_support.TestBase_Mapping,
+ unittest.TestCase):
+ encoding = 'big5hkscs'
+ mapfilename = 'BIG5HKSCS.TXT'
+ mapfileurl = 'http://people.freebsd.org/~perky/i18n/BIG5HKSCS.TXT'
+
+def test_main():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(TestBig5HKSCSMap))
+ test_support.run_suite(suite)
+
+test_multibytecodec_support.register_skip_expected(TestBig5HKSCSMap)
+if __name__ == "__main__":
+ test_main()
diff --git a/Lib/test/test_codecmaps_jp.py b/Lib/test/test_codecmaps_jp.py
index 9519da2..014a952 100644
--- a/Lib/test/test_codecmaps_jp.py
+++ b/Lib/test/test_codecmaps_jp.py
@@ -3,7 +3,7 @@
# test_codecmaps_jp.py
# Codec mapping tests for Japanese encodings
#
-# $CJKCodecs: test_codecmaps_jp.py,v 1.2 2004/01/17 12:47:19 perky Exp $
+# $CJKCodecs: test_codecmaps_jp.py,v 1.3 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
@@ -48,15 +48,6 @@
('\x81_', u'\\'),
]
-
-class TestSJISSTRICTMap(test_multibytecodec_support.TestBase_Mapping,
- unittest.TestCase):
- encoding = 'shift_jis_strict'
- mapfilename = 'SHIFTJIS.TXT'
- mapfileurl = 'http://www.unicode.org/Public/MAPPINGS/OBSOLETE' \
- '/EASTASIA/JIS/SHIFTJIS.TXT'
-
-
class TestEUCJISX0213Map(test_multibytecodec_support.TestBase_Mapping,
unittest.TestCase):
encoding = 'euc_jisx0213'
@@ -76,8 +67,6 @@
suite.addTest(unittest.makeSuite(TestCP932Map))
suite.addTest(unittest.makeSuite(TestEUCJPCOMPATMap))
suite.addTest(unittest.makeSuite(TestSJISCOMPATMap))
- if test_multibytecodec_support.__cjkcodecs__:
- suite.addTest(unittest.makeSuite(TestSJISSTRICTMap))
suite.addTest(unittest.makeSuite(TestEUCJISX0213Map))
suite.addTest(unittest.makeSuite(TestSJISX0213Map))
test_support.run_suite(suite)
@@ -85,5 +74,6 @@
test_multibytecodec_support.register_skip_expected(TestCP932Map,
TestEUCJPCOMPATMap, TestSJISCOMPATMap, TestEUCJISX0213Map,
TestSJISX0213Map)
+
if __name__ == "__main__":
test_main()
diff --git a/Lib/test/test_codecmaps_kr.py b/Lib/test/test_codecmaps_kr.py
index 9a71939..be19811 100644
--- a/Lib/test/test_codecmaps_kr.py
+++ b/Lib/test/test_codecmaps_kr.py
@@ -3,7 +3,7 @@
# test_codecmaps_kr.py
# Codec mapping tests for ROK encodings
#
-# $CJKCodecs: test_codecmaps_kr.py,v 1.2 2004/01/17 12:47:19 perky Exp $
+# $CJKCodecs: test_codecmaps_kr.py,v 1.3 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
diff --git a/Lib/test/test_codecmaps_tw.py b/Lib/test/test_codecmaps_tw.py
index 2f41660..61d83cd 100644
--- a/Lib/test/test_codecmaps_tw.py
+++ b/Lib/test/test_codecmaps_tw.py
@@ -3,7 +3,7 @@
# test_codecmaps_tw.py
# Codec mapping tests for ROC encodings
#
-# $CJKCodecs: test_codecmaps_tw.py,v 1.2 2004/01/17 12:47:19 perky Exp $
+# $CJKCodecs: test_codecmaps_tw.py,v 1.3 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
diff --git a/Lib/test/test_multibytecodec.py b/Lib/test/test_multibytecodec.py
index e96afba..acf333e 100644
--- a/Lib/test/test_multibytecodec.py
+++ b/Lib/test/test_multibytecodec.py
@@ -3,7 +3,7 @@
# test_multibytecodec.py
# Unit test for multibytecodec itself
#
-# $CJKCodecs: test_multibytecodec.py,v 1.5 2004/01/06 02:26:28 perky Exp $
+# $CJKCodecs: test_multibytecodec.py,v 1.8 2004/06/19 06:09:55 perky Exp $
from test import test_support
from test import test_multibytecodec_support
@@ -69,6 +69,12 @@
def test_str_decode(self):
self.assertEqual('abcd'.encode('gb18030'), 'abcd')
+ def test_streamwriter_strwrite(self):
+ s = StringIO.StringIO()
+ wr = codecs.getwriter('gb18030')(s)
+ wr.write('abcd')
+ self.assertEqual(s.getvalue(), 'abcd')
+
def test_main():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(Test_StreamWriter))
diff --git a/Lib/test/test_multibytecodec_support.py b/Lib/test/test_multibytecodec_support.py
index f471adf..22b52f7 100644
--- a/Lib/test/test_multibytecodec_support.py
+++ b/Lib/test/test_multibytecodec_support.py
@@ -3,7 +3,7 @@
# test_multibytecodec_support.py
# Common Unittest Routines for CJK codecs
#
-# $CJKCodecs: test_multibytecodec_support.py,v 1.5 2004/01/17 12:47:19 perky Exp $
+# $CJKCodecs: test_multibytecodec_support.py,v 1.6 2004/06/19 06:09:55 perky Exp $
import sys, codecs, os.path
import unittest
@@ -164,13 +164,8 @@
def __init__(self, *args, **kw):
unittest.TestCase.__init__(self, *args, **kw)
if not os.path.exists(self.mapfilename):
- parent = os.path.join(os.pardir, self.mapfilename)
- if not os.path.exists(parent):
- format = '%s not found, download from %s'
- raise test_support.TestSkipped(format %
- (self.mapfilename, self.mapfileurl))
- else:
- self.mapfilename = parent
+ raise test_support.TestSkipped('%s not found, download from %s' %
+ (self.mapfilename, self.mapfileurl))
def test_mapping_file(self):
unichrs = lambda s: u''.join(map(unichr, map(eval, s.split('+'))))