import json
__MORA_LIST_MINIMUM: list[tuple[str, str | None, str]] = [
("ヴォ", "v", "o"),
("ヴェ", "v", "e"),
("ヴィ", "v", "i"),
("ヴァ", "v", "a"),
("ヴ", "v", "u"),
("ン", None, "N"),
("ワ", "w", "a"),
("ロ", "r", "o"),
("レ", "r", "e"),
("ル", "r", "u"),
("リョ", "ry", "o"),
("リュ", "ry", "u"),
("リャ", "ry", "a"),
("リェ", "ry", "e"),
("リ", "r", "i"),
("ラ", "r", "a"),
("ヨ", "y", "o"),
("ユ", "y", "u"),
("ヤ", "y", "a"),
("モ", "m", "o"),
("メ", "m", "e"),
("ム", "m", "u"),
("ミョ", "my", "o"),
("ミュ", "my", "u"),
("ミャ", "my", "a"),
("ミェ", "my", "e"),
("ミ", "m", "i"),
("マ", "m", "a"),
("ポ", "p", "o"),
("ボ", "b", "o"),
("ホ", "h", "o"),
("ペ", "p", "e"),
("ベ", "b", "e"),
("ヘ", "h", "e"),
("プ", "p", "u"),
("ブ", "b", "u"),
("フォ", "f", "o"),
("フェ", "f", "e"),
("フィ", "f", "i"),
("ファ", "f", "a"),
("フ", "f", "u"),
("ピョ", "py", "o"),
("ピュ", "py", "u"),
("ピャ", "py", "a"),
("ピェ", "py", "e"),
("ピ", "p", "i"),
("ビョ", "by", "o"),
("ビュ", "by", "u"),
("ビャ", "by", "a"),
("ビェ", "by", "e"),
("ビ", "b", "i"),
("ヒョ", "hy", "o"),
("ヒュ", "hy", "u"),
("ヒャ", "hy", "a"),
("ヒェ", "hy", "e"),
("ヒ", "h", "i"),
("パ", "p", "a"),
("バ", "b", "a"),
("ハ", "h", "a"),
("ノ", "n", "o"),
("ネ", "n", "e"),
("ヌ", "n", "u"),
("ニョ", "ny", "o"),
("ニュ", "ny", "u"),
("ニャ", "ny", "a"),
("ニェ", "ny", "e"),
("ニ", "n", "i"),
("ナ", "n", "a"),
("ドゥ", "d", "u"),
("ド", "d", "o"),
("トゥ", "t", "u"),
("ト", "t", "o"),
("デョ", "dy", "o"),
("デュ", "dy", "u"),
("デャ", "dy", "a"),
("ディ", "d", "i"),
("デ", "d", "e"),
("テョ", "ty", "o"),
("テュ", "ty", "u"),
("テャ", "ty", "a"),
("ティ", "t", "i"),
("テ", "t", "e"),
("ツォ", "ts", "o"),
("ツェ", "ts", "e"),
("ツィ", "ts", "i"),
("ツァ", "ts", "a"),
("ツ", "ts", "u"),
("ッ", None, "q"), ("チョ", "ch", "o"),
("チュ", "ch", "u"),
("チャ", "ch", "a"),
("チェ", "ch", "e"),
("チ", "ch", "i"),
("ダ", "d", "a"),
("タ", "t", "a"),
("ゾ", "z", "o"),
("ソ", "s", "o"),
("ゼ", "z", "e"),
("セ", "s", "e"),
("ズィ", "z", "i"),
("ズ", "z", "u"),
("スィ", "s", "i"),
("ス", "s", "u"),
("ジョ", "j", "o"),
("ジュ", "j", "u"),
("ジャ", "j", "a"),
("ジェ", "j", "e"),
("ジ", "j", "i"),
("ショ", "sh", "o"),
("シュ", "sh", "u"),
("シャ", "sh", "a"),
("シェ", "sh", "e"),
("シ", "sh", "i"),
("ザ", "z", "a"),
("サ", "s", "a"),
("ゴ", "g", "o"),
("コ", "k", "o"),
("ゲ", "g", "e"),
("ケ", "k", "e"),
("グヮ", "gw", "a"),
("グ", "g", "u"),
("クヮ", "kw", "a"),
("ク", "k", "u"),
("ギョ", "gy", "o"),
("ギュ", "gy", "u"),
("ギャ", "gy", "a"),
("ギェ", "gy", "e"),
("ギ", "g", "i"),
("キョ", "ky", "o"),
("キュ", "ky", "u"),
("キャ", "ky", "a"),
("キェ", "ky", "e"),
("キ", "k", "i"),
("ガ", "g", "a"),
("カ", "k", "a"),
("オ", None, "o"),
("エ", None, "e"),
("ウォ", "w", "o"),
("ウェ", "w", "e"),
("ウィ", "w", "i"),
("ウ", None, "u"),
("イェ", "y", "e"),
("イ", None, "i"),
("ア", None, "a"),
]
__MORA_LIST_ADDITIONAL: list[tuple[str, str | None, str]] = [
("ヴョ", "by", "o"),
("ヴュ", "by", "u"),
("ヴャ", "by", "a"),
("ヲ", None, "o"),
("ヱ", None, "e"),
("ヰ", None, "i"),
("ヮ", "w", "a"),
("ョ", "y", "o"),
("ュ", "y", "u"),
("ヅ", "z", "u"),
("ヂ", "j", "i"),
("ヶ", "k", "e"),
("ャ", "y", "a"),
("ォ", None, "o"),
("ェ", None, "e"),
("ゥ", None, "u"),
("ィ", None, "i"),
("ァ", None, "a"),
]
data = {"minimum": [], "additional": []}
for mora, consonant, vowel in __MORA_LIST_MINIMUM:
data["minimum"].append(
{
"mora": mora,
"consonant": consonant,
"vowel": vowel,
}
)
for mora, consonant, vowel in __MORA_LIST_ADDITIONAL:
data["additional"].append(
{
"mora": mora,
"consonant": consonant,
"vowel": vowel,
}
)
with open("src/mora_list.json", "w") as f:
json.dump(data, f, ensure_ascii=False, indent=4)