summaryrefslogtreecommitdiffstats
path: root/scripts2
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2015-09-07 15:16:29 +0800
committerPeng Wu <alexepico@gmail.com>2015-09-07 15:16:29 +0800
commit9f39cd0266ae44167fe9fb71c9be428d07aff637 (patch)
tree57d912429641bdae748b67dbc577d4f4b43a7e51 /scripts2
parenta44728667329e19418cc9fa28a0dd63e8a1ce9bb (diff)
downloadlibpinyin-9f39cd0266ae44167fe9fb71c9be428d07aff637.tar.gz
libpinyin-9f39cd0266ae44167fe9fb71c9be428d07aff637.tar.xz
libpinyin-9f39cd0266ae44167fe9fb71c9be428d07aff637.zip
update doublepinyintable.py
Diffstat (limited to 'scripts2')
-rw-r--r--scripts2/doublepinyintable.py60
1 files changed, 59 insertions, 1 deletions
diff --git a/scripts2/doublepinyintable.py b/scripts2/doublepinyintable.py
index 8c78353..6b1a788 100644
--- a/scripts2/doublepinyintable.py
+++ b/scripts2/doublepinyintable.py
@@ -21,6 +21,7 @@
from doublepinyin import SHUANGPIN_SCHEMAS
+from fullpinyin import YUNMU_LIST
def gen_shengmu_table(scheme):
@@ -56,6 +57,61 @@ def gen_yunmu_table(scheme):
return ',\n'.join(entries)
+#https://zh.wikipedia.org/zh-hans/双拼
+def gen_fallback_table2(scheme):
+ entries = []
+ #select yunmu mapping
+ yun = SHUANGPIN_SCHEMAS[scheme][1]
+ for yunmu in sorted(YUNMU_LIST):
+ char1 = yunmu[0]
+ char2 = None
+ for k, v in yun.items():
+ if len(v) == 1:
+ if yunmu == v[0]:
+ char2 = k
+ if len(v) == 2:
+ if yunmu == v[0] or yunmu == v[1]:
+ char2 = k
+
+ if char2 == None:
+ continue
+ index = char1 + char2
+ entry = '{{"{0}", "{1}"}}'.format(index, yunmu)
+ entries.append(entry)
+ return ',\n'.join(entries)
+
+
+def gen_fallback_table3(scheme):
+ entries = []
+ #select yunmu mapping
+ yun = SHUANGPIN_SCHEMAS[scheme][1]
+ for yunmu in sorted(YUNMU_LIST):
+ #special case for double character yunmu
+ if len(yunmu) == 2:
+ entry = '{{"{0}", "{1}"}}'.format(yunmu, yunmu)
+ entries.append(entry)
+ continue
+
+ #same as gen_fallback_table2
+ char1 = yunmu[0]
+ char2 = None
+ for k, v in yun.items():
+ if len(v) == 1:
+ if yunmu == v[0]:
+ char2 = k
+ if len(v) == 2:
+ if yunmu == v[0] or yunmu == v[1]:
+ char2 = k
+
+ if char2 == None:
+ continue
+ index = char1 + char2
+ entry = '{{"{0}", "{1}"}}'.format(index, yunmu)
+ entries.append(entry)
+ return ',\n'.join(entries)
+
+
+
'''
def get_table_content(tablename):
(scheme, part) = tablename.split('_', 1)
@@ -68,4 +124,6 @@ def get_table_content(tablename):
### main function ###
if __name__ == "__main__":
- pass
+ print(gen_fallback_table2("PYJJ"))
+ print(gen_fallback_table3("ZRM"))
+ print(gen_fallback_table3("XHE"))