summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorZhangyuan Nie <yuan@znie.org>2022-08-05 01:43:33 -0400
committerPeng Wu <alexepico@gmail.com>2022-08-10 14:12:52 +0800
commit353530b6502d4027d7af8e4b43f1869e1ec51159 (patch)
treec0f531e8389a0b8442d53e8d1a6d860f96e381f4 /scripts
parent3fe89d77bff39c23c9ad72843fc71035faf7d0c7 (diff)
downloadibus-libpinyin-353530b6502d4027d7af8e4b43f1869e1ec51159.tar.gz
ibus-libpinyin-353530b6502d4027d7af8e4b43f1869e1ec51159.tar.xz
ibus-libpinyin-353530b6502d4027d7af8e4b43f1869e1ec51159.zip
fix update-simptrad-table.py compatibility
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/update-simptrad-table.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/scripts/update-simptrad-table.py b/scripts/update-simptrad-table.py
index d6fc7dd..5784bb7 100755
--- a/scripts/update-simptrad-table.py
+++ b/scripts/update-simptrad-table.py
@@ -1,17 +1,19 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
import sys
+
sys.path.append(".")
from ZhConversion import *
from valid_hanzi import *
+
def convert(s, d, n):
out = ""
end = len(s)
begin = 0
while begin < end:
for i in range(min(n, end - begin), 0, -1):
- t = s[begin:begin+i]
+ t = s[begin : begin + i]
t = d.get(t, t if i == 1 else None)
if t:
break
@@ -19,12 +21,14 @@ def convert(s, d, n):
begin += i
return out
+
def filter_more(records, n):
han = [(k, v) for (k, v) in records if len(k) <= 0]
hand = dict(han)
hanm = [(k, v) for (k, v) in records if convert(k, hand, n) != v]
return hanm + han
+
def filter_func(args):
k, v = args
# length is not equal or length > 6
@@ -45,25 +49,25 @@ def filter_func(args):
# return False
return True
-def get_records():
- records = list(zh2Hant.items())
- records = list(filter(filter_func, records))
+def get_records():
+ records = [kv for kv in zh2Hant.items() if filter_func(kv)]
maxlen = max([len(k) for (k, v) in records])
- for i in range(1, maxlen - 1):
+ for i in range(1, maxlen - 1):
records = filter_more(records, i)
- records = [(k.encode("utf8"), v.encode("utf8")) for (k, v) in records]
records.sort()
return maxlen, records
+
def main():
print("static const gchar *simp_to_trad[][2] = {")
maxlen, records = get_records()
for s, ts in records:
- print(' { "%s", "%s" },' % (s, ts))
+ print(f' {{ "{s}", "{ts}" }},')
print("};")
- print('#define SIMP_TO_TRAD_MAX_LEN (%d)' % maxlen)
+ print(f"#define SIMP_TO_TRAD_MAX_LEN ({maxlen})")
+
if __name__ == "__main__":
main()