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

Function main

Tools/unicode/genmap_japanese.py:75–248  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

73
74
75def main():
76 jisx0208file = open_mapping_file('python-mappings/JIS0208.TXT', MAPPINGS_JIS0208)
77 jisx0212file = open_mapping_file('python-mappings/JIS0212.TXT', MAPPINGS_JIS0212)
78 cp932file = open_mapping_file('python-mappings/CP932.TXT', MAPPINGS_CP932)
79 jisx0213file = open_mapping_file('python-mappings/jisx0213-2004-std.txt', MAPPINGS_JISX0213_2004)
80
81 print("Loading Mapping File...")
82
83 sjisdecmap = loadmap(jisx0208file, natcol=0, unicol=2)
84 jisx0208decmap = loadmap(jisx0208file, natcol=1, unicol=2)
85 jisx0212decmap = loadmap(jisx0212file)
86 cp932decmap = loadmap(cp932file)
87 jis3decmap, jis4decmap, jis3_2_decmap, jis4_2_decmap, jis3_pairdecmap = loadmap_jisx0213(jisx0213file)
88
89 if jis3decmap[0x21][0x24] != 0xff0c:
90 raise SystemExit('Please adjust your JIS X 0213 map using jisx0213-2000-std.txt.diff')
91
92 sjisencmap, cp932encmap = {}, {}
93 jisx0208_0212encmap = {}
94 for c1, m in sjisdecmap.items():
95 for c2, code in m.items():
96 sjisencmap.setdefault(code >> 8, {})
97 sjisencmap[code >> 8][code & 0xff] = c1 << 8 | c2
98 for c1, m in cp932decmap.items():
99 for c2, code in m.items():
100 cp932encmap.setdefault(code >> 8, {})
101 if (code & 0xff) not in cp932encmap[code >> 8]:
102 cp932encmap[code >> 8][code & 0xff] = c1 << 8 | c2
103 for c1, m in cp932encmap.copy().items():
104 for c2, code in m.copy().items():
105 if c1 in sjisencmap and c2 in sjisencmap[c1] and sjisencmap[c1][c2] == code:
106 del cp932encmap[c1][c2]
107 if not cp932encmap[c1]:
108 del cp932encmap[c1]
109
110 jisx0213pairdecmap = {}
111 jisx0213pairencmap = []
112 for unibody, m1 in jis3_pairdecmap.items():
113 for c1, m2 in m1.items():
114 for c2, modifier in m2.items():
115 jisx0213pairencmap.append((unibody, modifier, c1 << 8 | c2))
116 jisx0213pairdecmap.setdefault(c1, {})
117 jisx0213pairdecmap[c1][c2] = unibody << 16 | modifier
118
119 # Twinmap for both of JIS X 0208 (MSB unset) and JIS X 0212 (MSB set)
120 for c1, m in jisx0208decmap.items():
121 for c2, code in m.items():
122 jisx0208_0212encmap.setdefault(code >> 8, {})
123 jisx0208_0212encmap[code >> 8][code & 0xff] = c1 << 8 | c2
124
125 for c1, m in jisx0212decmap.items():
126 for c2, code in m.items():
127 jisx0208_0212encmap.setdefault(code >> 8, {})
128 if (code & 0xff) in jisx0208_0212encmap[code >> 8]:
129 print("OOPS!!!", (code))
130 jisx0208_0212encmap[code >> 8][code & 0xff] = 0x8000 | c1 << 8 | c2
131
132 jisx0213bmpencmap = {}

Callers 1

genmap_japanese.pyFile · 0.70

Calls 15

update_decode_mapMethod · 0.95
generateMethod · 0.95
writeMethod · 0.95
printoutMethod · 0.95
open_mapping_fileFunction · 0.85
loadmapFunction · 0.85
loadmap_jisx0213Function · 0.85
print_autogenFunction · 0.85
DecodeMapWriterClass · 0.85
EncodeMapWriterClass · 0.85
BufferedFillerClass · 0.85
openFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…