# -*- coding: utf-8 -*- # properties.py # # Copyright 2019 Hiroshi Miura import os from pathlib import Path try: from importlib.resources import files except ImportError: from importlib_resources import files class Configurations: data_path = files(__package__) / "data" jisyo_hepburn_hira = "hepburnhira3.db" jisyo_passport_hira = "passporthira3.db" jisyo_kunrei_hira = "kunreihira3.db" jisyo_itaiji = "itaijidict4.db" jisyo_kanwa = "kanwadict4.db" jisyo_hepburn = "hepburndict3.db" jisyo_passport = "passportdict3.db" jisyo_kunrei = "kunreidict3.db" jisyo_halfkana = "halfkana3.db" def dictpath(self, dbfile: str): return os.path.join(self.data_path, dbfile) Configurations = Configurations() class Ch: space = 0x20 at_mark = 0x40 alphabet_A = 0x41 alphabet_Z = 0x5A square_bra = 0x5B back_quote = 0x60 alphabet_a = 0x61 alphabet_z = 0x7A bracket_bra = 0x7B tilda = 0x7E delete = 0x7F latin1_inverted_exclam = 0x00A1 latin1_y_diaeresis = 0x00FF ideographic_space = 0x3000 postal_mark_face = 0x3020 wavy_dash = 0x3030 ideographic_half_fill_space = 0x303F greece_Alpha = 0x0391 greece_Rho = 0x30A1 greece_Sigma = 0x30A3 greece_Omega = 0x03A9 greece_alpha = 0x03B1 greece_omega = 0x03C9 cyrillic_A = 0x0410 cyrillic_E = 0x0401 cyrillic_e = 0x0451 cyrillic_ya = 0x044F zenkaku_exc_mark = 0xFF01 zenkaku_slash_mark = 0xFF0F zenkaku_number_zero = 0xFF10 zenkaku_number_nine = 0xFF1A zenkaku_A = 0xFF21 zenkaku_a = 0xFF41 endmark = ")]!,.,\u3001\u3002\uff1f\uff10\uff1e\uff1c" long_symbols = "\u30FC\u2015\u2212\uFF70" # "ー ― − ー " # _UNCHECKED_LONG_SYMBOLS: str = "\u002D\u2010\u2011\u2013\u2014" # "- ‐ ‑ – —" Ch = Ch() class Convert_Tables: """ convert symbols to alphabet based on Original KAKASI's EUC_JP - alphabet converter table -------------------------------------------------------------------------- a1 a0 |   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ " ",",",".",",",".",".",":",";","?", "!","\"","(maru)","'","`","..", a1 b0 | ^  ̄ _ ヽ ヾ ゝ ゞ 〃 仝 々 〆 〇 ー ― ‐ / "~","~","_","(kurikaesi)","(kurikaesi)","(kurikaesi)", "(kurikaesi)","(kurikaesi)","(kurikaesi)","(kurikaesi)", "sime","(maru)","^","-","-","/", a1 c0 | \ ~ ∥ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] "\\","~","||","|","...","..","`","'","\"","\"","(",")","[","]","[","]", "{","}","<",">","<<",">>","(",")","(",")","(",")","+","-","+-","X", a1 d0 | { } 〈 〉 《 》 「 」 『 』 【 】 + - ± × a1 e0 | ÷ = ≠ < > ≦ ≧ ∞ ∴ ♂ ♀ ° ′ ″ ℃ ¥ "/","=","!=","<",">","<=",">=","(kigou)","...", "(osu)","(mesu)","(do)","'","\"","(Sessi)","\\", a1 f0 | $ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇ "$","(cent)","(pound)","%","#","&","*","@", "(setu)","(hosi)","(hosi)","(maru)","(maru)","(maru)","(diamond)" --------------------------------------------------------------------------- ---------------------------------------------------------- a2 a0 | ◆ □ ■ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ 〓 a2 b0 | ∈ ∋ ⊆ ⊇ ⊂ ⊃ a2 c0 | ∪ ∩ ∧ ∨ ¬ ⇒ ⇔ ∀ a2 d0 | ∃ ∠ ⊥ ⌒ ∂ a2 e0 | ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ a2 f0 | Å ‰ ♯ ♭ ♪ † ‡ ¶ ◯ ---------------------------------------------------------- Greek conversion table ---------------------------------------------------------- "Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega", "", "", "", "", "", "", "", "", "alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", "iota", "kappa", "lambda", "mu", "nu", "xi", "omicron", "pi", "rho", "sigma", "tau", "upsilon", "phi", "chi", "psi", "omega" ---------------------------------------------------------- """ # U3000 - 301F # \u3000、。〃〄〇〆々〈〉《》「」『』【】〒〓〔〕〖〗〘〙 # 〚〛〜〝〞〟〠 symbol_table_1 = [ " ", ",", ".", '"', "(kigou)", "(kurikaesi)", "(sime)", "(maru)", "<", ">", "<<", ">>", "(", ")", "(", ")", "(", ")", "(kigou)", "(geta)", "(", ")", "(", ")", "(", ")", "(", ")", "~", "(kigou)", '"', "(kigou)", "(kigou)", ] # U3030 - 3040 # 〰〱〲〳〴〵〶〷〼〽〾〿 symbol_table_2 = [ "-", "(kurikaesi)", "(kurikaesi)", "(kurikaesi)", "(kurikaesi)", "(kurikaesi)", "(kigou)", "XX", None, None, None, None, "(masu)", "(kurikaesi)", " ", " ", ] # U0391-03A9 symbol_table_3 = [ "Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", None, "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega", ] # U03B1-03C9 symbol_table_4 = [ "alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", "iota", "kappa", "lambda", "mu", "nu", "xi", "omicron", "pi", "rho", "final sigma", "sigma", "tau", "upsilon", "phi", "chi", "psi", "omega", ] # UFF01-FF0F symbol_table_5 = [ "!", '"', "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ] # cyrillic cyrillic_table = { # basic cyrillic characters "\u0410": "A", "\u0411": "B", "\u0412": "V", # АБВ "\u0413": "G", "\u0414": "D", "\u0415": "E", # ГДЕ "\u0401": "E", "\u0416": "Zh", "\u0417": "Z", # ЁЖЗ "\u0418": "I", "\u0419": "Y", "\u041a": "K", # ИЙК "\u041b": "L", "\u041c": "M", "\u041d": "N", # ЛМН "\u041e": "O", "\u041f": "P", "\u0420": "R", # ОПР "\u0421": "S", "\u0422": "T", "\u0423": "U", # СТУ "\u0424": "F", "\u0425": "H", "\u0426": "Ts", # ФХЦ "\u0427": "Ch", "\u0428": "Sh", "\u0429": "Sch", # ЧШЩ "\u042a": "", "\u042b": "Y", "\u042c": "", # ЪЫЬ "\u042d": "E", "\u042e": "Yu", "\u042f": "Ya", # ЭЮЯ "\u0430": "a", "\u0431": "b", "\u0432": "v", # абв "\u0433": "g", "\u0434": "d", "\u0435": "e", # где "\u0451": "e", "\u0436": "zh", "\u0437": "z", # ёжз "\u0438": "i", "\u0439": "y", "\u043a": "k", # ийк "\u043b": "l", "\u043c": "m", "\u043d": "n", # лмн "\u043e": "o", "\u043f": "p", "\u0440": "r", # опр "\u0441": "s", "\u0442": "t", "\u0443": "u", # сту "\u0444": "f", "\u0445": "h", "\u0446": "ts", # фхц "\u0447": "ch", "\u0448": "sh", "\u0449": "sch", # чшщ "\u044a": "", "\u044b": "y", "\u044c": "", # ъыь "\u044d": "e", "\u044e": "yu", "\u044f": "ya", # эюя } alpha_table_1 = [ "\u3000", "\uff01", "\uff02", "\uff03", "\uff04", "\uff05", "\uff06", "\uff07", "\uff08", "\uff09", "\uff0a", "\uff0b", "\uff0c", "\uff0d", "\uff0e", "\uff0f", # !"#$%&'()*+,-./ "\uff10", "\uff11", "\uff12", "\uff13", "\uff14", "\uff15", "\uff16", "\uff17", "\uff18", "\uff19", # 0...9 "\uff1a", "\uff1b", "\uff1c", "\uff1d", "\uff1e", "\uff1f", "\uff20", ] # :;<=>?@ alpha_table_2 = [ "\uff3b", "\uff3c", "\uff3d", "\uff3e", "\uff3f", "\uff40", ] # [\]^_` alpha_table_3 = ["\uff5b", "\uff5c", "\uff5d", "\uff5e"] # {|}~ latin1_table = [ "!", # inverted exclamation "cent", # cent mark "GBP", # pound mark "currency", # currency mark "yen", # Yen mark "|", # broken bar "ss", # section sign "..", # diaeresis "(c)", # copyright "a", # Feminine Ordinal Indicator "<<", # left pointing double angle "not", # not sign "-", # soft hyphen "(R)", # registered "~", # macron ".", # degree symbol "+-", # plus-minus sign "^2", # superscript two "^3", # superscript three "`", # acute "u", # micro sign "D", # pilcrow sign ".", # middle dot ",", # cedilla "^1", # superscript one "", # Masculine ordinal indicator ">>", # right pointing double angle "1/4", # Vulgar fraction one quarter "1/2", # Vulgar fraction one half "3/4", # Vulgar fraction three quarters "?", # Inverted question mark "A", "A", "A", "A", "A", "A", "AE", "C", "E", "E", "E", "E", "I", "I", "I", "I", "Eth", "N", "O", "O", "O", "O", "O", "x", "O", "U", "U", "U", "U", "Y", "", "", "a", "a", "a", "a", "a", "a", "ae", "c", "e", "e", "e", "e", "i", "i", "i", "i", "eth", "n", "o", "o", "o", "o", "o", "/", "o", "u", "u", "u", "u", "y", "", "y", ] Convert_Tables = Convert_Tables()