From fcb21bdd9fa740133c2e20282de5ecd12cd2071a Mon Sep 17 00:00:00 2001 From: erjemin Date: Wed, 14 May 2025 00:06:39 +0300 Subject: [PATCH] =?UTF-8?q?add:=20=D0=BB=D0=BE=D0=B3=D0=B3=D0=B5=D1=80=20.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etpgrf/defaults.py | 3 +-- etpgrf/logger.py | 5 ++++- main.py | 22 ++++++++++++++++------ 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/etpgrf/defaults.py b/etpgrf/defaults.py index 4673794..e30f910 100644 --- a/etpgrf/defaults.py +++ b/etpgrf/defaults.py @@ -4,9 +4,8 @@ from etpgrf.config import LANG_RU, MODE_MIXED class LoggingDefaults: LEVEL = logging.DEBUG - FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s' # Можно добавить ещё настройки, если понадобятся: - # FORMAT: str = '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s' # FILE_PATH: str | None = None # Путь к файлу лога, если None - не пишем в файл diff --git a/etpgrf/logger.py b/etpgrf/logger.py index 9ddaed6..bc6396b 100644 --- a/etpgrf/logger.py +++ b/etpgrf/logger.py @@ -20,7 +20,10 @@ def setup_library_logging(): # Проверяем инициализацию хандлеров логера, чтобы случайно не добавлять хендлеры многократно if not _etpgrf_init_logger.hasHandlers(): log_level_to_set = logging.WARNING # Значение по умолчанию - log_format_to_set = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' # Формат по умолчанию + # самый мощный формат, который мы можем использовать + log_format_to_set = '%(asctime)s - %(name)s - %(levelname)s - %(module)s.%(funcName)s:%(lineno)d - %(message)s' + # обычно достаточно: + # log_format_to_set = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' # Формат по умолчанию fin_message: str | None = None if hasattr(etpgrf_settings, 'logging_settings'): diff --git a/main.py b/main.py index 3cda9a4..76b6119 100644 --- a/main.py +++ b/main.py @@ -4,37 +4,47 @@ import logging if __name__ == '__main__': # --- Пример использования --- print("\n--- Пример использования класса---\n") + # Меняем настройки по умолчанию для переносов etpgrf.defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN = 8 - etpgrf.defaults.etpgrf_settings.logging_settings.LEVEL = logging.DEBUG - etpgrf.logger.update_etpgrf_log_level_from_settings() # Обновляем уровень логирования из настроек - etpgrf.defaults.etpgrf_settings.logging_settings.FORMAT = '%(asctime)s - %(name)s = %(levelname)s - %(message)s' - etpgrf.logger.update_etpgrf_log_format_from_settings() # Обновляем формат логирования из настроек # Определяем пользовательские правила переносов hyphen_settings = etpgrf.Hyphenator(langs='ru', max_unhyphenated_len=8) - # Определяем пользовательские правила типографа + # Проверяем переносы в словах result = hyphen_settings.hyp_in_text("Бармалейщина") print(result, "\n\n") + + # Проверяем переносы в словах, но "подсовываем" текст с пробелами result = hyphen_settings.hyp_in_word("Длинношеевый жираф") print(result, "\n\n") + # Проверяем переносы в английских словах hyphen_settings2 = etpgrf.Hyphenator(langs='en', max_unhyphenated_len=8) result = hyphen_settings2.hyp_in_text("floccinaucinihilipilification") print(result, "\n\n") + # Определяем пользовательские правила типографа typo_ru = etpgrf.Typographer(langs='ru', mode='mixed', hyphenation=hyphen_settings) result = typo_ru.process(text="Какой-то длинный текст для проверки переносов. Перпердикюляция!") print(result, "\n\n") + + # Проверяем переносы в смешанном тексте (русский + английский) typo_ru_en = etpgrf.Typographer(langs='ru-en', mode='mixed', hyphenation=True) result = typo_ru_en.process(text="Расприветище, floccinaucinihilipilification. Это тестовый текст для проверки расстановки переносов" " в словах. Миллион 100-метровошеих жирножирафов.") print(result, "\n\n") + # меняем настройки логирования + etpgrf.defaults.etpgrf_settings.logging_settings.LEVEL = logging.DEBUG + etpgrf.logger.update_etpgrf_log_level_from_settings() # Обновляем уровень логирования из настроек + etpgrf.defaults.etpgrf_settings.logging_settings.FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + etpgrf.logger.update_etpgrf_log_format_from_settings() # Обновляем формат логирования из настроек + + + # Проверяем переносы в тексте с метакодом txt = ("Каждое пальто, которое мы создаём — это не просто одежда. Это" " вещь, в которой должно быть удобно жить: ходить, ждать, ехать, молчать и — главное —" " чувствовать себя собой. Мы не шьём одина­ковые пальто. Мы шьём ваше. Ниже —" " как устроен процесс заказа.

") - result = typo_ru.process(text=txt) print(result, "\n\n")