diff options
author | Zhangyuan Nie <yuan@znie.org> | 2022-08-05 01:43:33 -0400 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2022-08-10 14:12:52 +0800 |
commit | 353530b6502d4027d7af8e4b43f1869e1ec51159 (patch) | |
tree | c0f531e8389a0b8442d53e8d1a6d860f96e381f4 | |
parent | 3fe89d77bff39c23c9ad72843fc71035faf7d0c7 (diff) | |
download | ibus-libpinyin-353530b6502d4027d7af8e4b43f1869e1ec51159.tar.gz |
fix update-simptrad-table.py compatibility
-rwxr-xr-x | scripts/update-simptrad-table.py | 22 |
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() |