2025-etpgrf/main.py

108 lines
7.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import etpgrf
import logging
if __name__ == '__main__':
# --- Пример использования ---
print("\n--- Пример использования класса---\n")
# меняем настройки логирования
etpgrf.defaults.etpgrf_settings.logging_settings.LEVEL = logging.INFO
etpgrf.logger.update_etpgrf_log_level_from_settings() # Обновляем уровень логирования из настроек
# Меняем настройки по умолчанию для переносов
etpgrf.defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN = 8
# Определяем пользовательские правила переносов
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. Это <i>тестовый текст для проверки расстановки</i> переносов"
" в словах. Миллион 100-метровошеих жирножирафов.")
print(result, "\n\n")
# Меняем настройки по умолчанию для переносов
etpgrf.defaults.etpgrf_settings.LANGS = "ru"
etpgrf.defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN = 8
txt = ("В самом сердце Санкт-Петербурга — там, где старинные фасады спорят с неоном вывесок — мелькнуло"
" пятно алого. Это было пальто от КейтБлаш, сшитое на заказ для перформанс-художницы Серафимы-Лукреции"
" Д’Анжу-Палладиновой.\n"
"\n"
"— Что-то среднее между коконом и пламенем, — прошептала девушка в очках-авиаторах, снимая его"
" на свой смартфон.\n"
"\n"
"Пальто (а точнее — то самое, из осенне-зимней коллекции 2025) мгновенно стало мемом. В блогах"
" писали: «Серафима Лу ваяет мрачные киберпанк-инсталляций в стиле милитари, а в жизни обычная"
" модница». На спине — вышивка шёлком в стиле Энди Уорхола -- \"пингвин парящий в закатном море\".\n"
"\n"
"Вдруг — бац! — порыв ветра раскрыл полы, обнажив подклад-трансформер: «днём — офис, вечером — клуб».")
result = typo_ru.process(text=txt)
print(result, "\n-----\n\n-----")
# Проверяем переносы в смешанном тексте (русский + английский)
etpgrf.defaults.etpgrf_settings.hyphenation.MAX_UNHYPHENATED_LEN = 6
typo_en = etpgrf.Typographer(langs='en', mode='mixed', hyphenation=True)
txt = ("It was a chilly autumn afternoon when Anna finally received her custom-made KATEBLASH coat."
" “I cant believe how perfectly it fits!” she exclaimed, wrapping the soft, woolen fabric tightly"
" around her shoulders.\n"
"\n"
"The coat - designed with unique check patterns and a detachable hood - was more than just a garment."
" It was a statement of style and comfort, crafted with care and precision. Anna remembered the"
" fitting session vividly: “The tailor said, This coat will keep you style through even the coldest"
" things winter throws at you.’”\n"
"\n"
"Her friend Mark raised an eyebrow: “Only you would get a coat with such an elaborate"
" design - and those fancy oughtstanding stitches! Sounds like your coat has more personality"
" than some people I know!”\n"
"\n"
"As they walked down the street, Anna noticed how the coats tailored cut moved gracefully with her."
" The consideration of every detail - from the choice of fabric to the delicate embroidery - made it"
" clear that this was no ordinary coat.\n"
"\n"
"Later, over coffee, Anna joked, “I told the tailor, Make it so I never want to take it off. "
"Looks like they succeeded!\n"
"\n"
"Mark nodded, “Well, with KATEBLASH, its not just about fashion - its about craftsmanship, comfort,"
" and a little bit of magic.”")
result = typo_en.process(text=txt)
print(result, "\n\n")
# Спасибо. Для английского текста, для проверки типографа, мне не хватает неразрывных диграфов-квадрографов -- sh, ch, th, ph, wh, ck, ng, aw, tch, dge, igh, eigh, ough и неразрывных суффиксов -- ation, ition, ution, osity, able, ible, ment, ness, less, ship, hood, tive, sion, tion в длинный словах (8 символов и более). и пусть тескт тоже будет про пальто KATEBLASH. Справишься??
# меняем настройки логирования
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='en', max_unhyphenated_len=6)
# Проверяем переносы в словах
result = hyphen_settings.hyp_in_text("oughtstanding")
print(result, "==\n\n")
result = hyphen_settings.hyp_in_text("blacksmithing")
print(result, "==\n\n")
result = hyphen_settings.hyp_in_text("dccadckpoooughremawgreen")
print(result, "==\n\n")