MCPcopy Index your code
hub / github.com/python/cpython / main

Function main

Tools/unicode/genmap_schinese.py:54–145  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

52 return m, gbuni
53
54def main():
55 print("Loading Mapping File...")
56 gb2312map = open_mapping_file('python-mappings/GB2312.TXT', MAPPINGS_GB2312)
57 cp936map = open_mapping_file('python-mappings/CP936.TXT', MAPPINGS_CP936)
58 gb18030map = open_mapping_file('python-mappings/gb-18030-2000.xml', MAPPINGS_GB18030)
59
60 gb18030decmap, gb18030unilinear = parse_gb18030map(gb18030map)
61 gbkdecmap = loadmap(cp936map)
62 gb2312decmap = loadmap(gb2312map)
63 difmap = {}
64 for c1, m in gbkdecmap.items():
65 for c2, code in m.items():
66 del gb18030decmap[c1][c2]
67 if not gb18030decmap[c1]:
68 del gb18030decmap[c1]
69 for c1, m in gb2312decmap.items():
70 for c2, code in m.items():
71 gbkc1, gbkc2 = c1 | 0x80, c2 | 0x80
72 if gbkdecmap[gbkc1][gbkc2] == code:
73 del gbkdecmap[gbkc1][gbkc2]
74 if not gbkdecmap[gbkc1]:
75 del gbkdecmap[gbkc1]
76
77 gb2312_gbkencmap, gb18030encmap = {}, {}
78 for c1, m in gbkdecmap.items():
79 for c2, code in m.items():
80 gb2312_gbkencmap.setdefault(code >> 8, {})
81 gb2312_gbkencmap[code >> 8][code & 0xff] = c1 << 8 | c2 # MSB set
82 for c1, m in gb2312decmap.items():
83 for c2, code in m.items():
84 gb2312_gbkencmap.setdefault(code >> 8, {})
85 gb2312_gbkencmap[code >> 8][code & 0xff] = c1 << 8 | c2 # MSB unset
86 for c1, m in gb18030decmap.items():
87 for c2, code in m.items():
88 gb18030encmap.setdefault(code >> 8, {})
89 gb18030encmap[code >> 8][code & 0xff] = c1 << 8 | c2
90
91 with open('mappings_cn.h', 'w') as fp:
92 print_autogen(fp, os.path.basename(__file__))
93
94 print("Generating GB2312 decode map...")
95 writer = DecodeMapWriter(fp, "gb2312", gb2312decmap)
96 writer.update_decode_map(GB2312_C1, GB2312_C2)
97 writer.generate()
98
99 print("Generating GBK decode map...")
100 writer = DecodeMapWriter(fp, "gbkext", gbkdecmap)
101 writer.update_decode_map(GBKL1_C1, GBKL1_C2)
102 writer.update_decode_map(GBKL2_C1, GBKL2_C2)
103 writer.generate()
104
105 print("Generating GB2312 && GBK encode map...")
106 writer = EncodeMapWriter(fp, "gbcommon", gb2312_gbkencmap)
107 writer.generate()
108
109 print("Generating GB18030 extension decode map...")
110 writer = DecodeMapWriter(fp, "gb18030ext", gb18030decmap)
111 for i in range(1, 6):

Callers 1

genmap_schinese.pyFile · 0.70

Calls 15

generateMethod · 0.95
writeMethod · 0.95
printoutMethod · 0.95
open_mapping_fileFunction · 0.85
parse_gb18030mapFunction · 0.85
loadmapFunction · 0.85
print_autogenFunction · 0.85
DecodeMapWriterClass · 0.85
EncodeMapWriterClass · 0.85
BufferedFillerClass · 0.85
strFunction · 0.85
update_decode_mapMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…