add: настройки языков и режима перенесены в config

This commit is contained in:
2025-05-11 21:54:27 +03:00
parent b64354f85b
commit 0eae872e7a
5 changed files with 49 additions and 25 deletions

View File

@@ -1,13 +1,13 @@
from etpgrf.config import UTF, MNEMO_CODE
from etpgrf.comutil import parse_and_validate_langs
from etpgrf.config import DEFAULT_MODE, DEFAULT_LANGS
from etpgrf.comutil import parce_and_validate_mode, parse_and_validate_langs
from etpgrf.hyphenation import Hyphenator
# --- Основной класс Typographer ---
class Typographer:
def __init__(self,
langs: str | list[str] | tuple[str, ...] | frozenset[str] = 'ru',
code_out: str = 'mnemo',
langs: str | list[str] | tuple[str, ...] | frozenset[str] = DEFAULT_LANGS,
mode: str = DEFAULT_MODE,
hyphenation_rule: Hyphenator | None = None, # Перенос слов и параметры расстановки переносов
# glue_prepositions_rule: GluePrepositionsRule | None = None, # Для других правил
# ... другие модули правил ...
@@ -16,16 +16,12 @@ class Typographer:
# --- Обработка и валидация параметра langs ---
self.langs: frozenset[str] = parse_and_validate_langs(langs)
# --- Обработка и валидация параметра code_out ---
if code_out not in MNEMO_CODE | UTF:
raise ValueError(f"etpgrf: code_out '{code_out}' is not supported. Supported codes: {MNEMO_CODE | UTF}")
# --- Обработка и валидация параметра mode ---
self.mode: str = parce_and_validate_mode(mode)
# Сохраняем переданные модули правил
self.hyphenation_rule = hyphenation_rule
# TODO: вынести все соответствия UTF ⇄ MNEMO_CODE в отдельный класс
# self.hyphen_char = "­" if code_out in UTF else "­" # Мягкий перенос по умолчанию
# Конвейер для обработки текста
def process(self, text: str) -> str:
processed_text = text
@@ -43,5 +39,5 @@ class Typographer:
return processed_text
# def _get_nbsp(self): # Пример получения неразрывного пробела
# return "\u00A0" if self.code_out in UTF else " "
# return "\u00A0" if self.mode in UTF else " "