encoding py python unicode codec for encoding written by hyeshik chang perkyfreebsd org def gencodecsprefix for loc encodings in codecs items for enc in encodings code template substituteencodingenc upper encodingenc lower ownerloc codecpath os path joinprefix enc py with opencodecpath w as f f writecode if name main import sys gencodecssys argv1 encoding py python unicode codec for encoding written by hye shik chang perky freebsd org import _codecs_ owner codecs import _multibytecodec as mbc codec _codecs_ owner getcodec encoding class codec codecs codec encode codec encode decode codec decode 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 codecs codecinfo name encoding encode codec encode decode codec decode incrementalencoder incrementalencoder incrementaldecoder incrementaldecoder streamreader streamreader streamwriter streamwriter
import os, string

codecs = {
    'cn': ('gb2312', 'gbk', 'gb18030', 'hz'),
    'tw': ('big5', 'cp950'),
    'hk': ('big5hkscs',),
    'jp': ('cp932', 'shift_jis', 'euc_jp', 'euc_jisx0213', 'shift_jisx0213',
           'euc_jis_2004', 'shift_jis_2004'),
    'kr': ('cp949', 'euc_kr', 'johab'),
    'iso2022': ('iso2022_jp', 'iso2022_jp_1', 'iso2022_jp_2',
                'iso2022_jp_2004', 'iso2022_jp_3', 'iso2022_jp_ext',
                'iso2022_kr'),
}

TEMPLATE = string.Template()

def gencodecs(prefix):
    for loc, encodings in codecs.items():
        for enc in encodings:
            code = TEMPLATE.substitute(ENCODING=enc.upper(),
                                       encoding=enc.lower(),
                                       owner=loc)
            codecpath = os.path.join(prefix, enc + '.py')
            with open(codecpath, 'w') as f:
                f.write(code)

if __name__ == '__main__':
    import sys
    gencodecs(sys.argv[1])