diff --git a/docs/code_snippets/overriding_format_example_sample.py b/docs/code_snippets/overriding_format_example_sample.py new file mode 100644 index 0000000..e73b842 --- /dev/null +++ b/docs/code_snippets/overriding_format_example_sample.py @@ -0,0 +1,11 @@ +from argenta import App + +def custom_print_function(text: str) -> None: + """Простая пользовательская функция вывода с префиксом.""" + print(f"Префикс: {text}") + +app = App( + initial_message="My App", + override_system_messages=True, + print_func=custom_print_function, +) diff --git a/docs/root/overriding_formatting.rst b/docs/root/overriding_formatting.rst index 744f50c..5ba96c6 100644 --- a/docs/root/overriding_formatting.rst +++ b/docs/root/overriding_formatting.rst @@ -3,7 +3,7 @@ Стандартное форматирование ========================== -По умолчанию в ``Argenta`` используется библиотека ``rich`` для вывода текстовых сообщений с расширенным форматированием в консоли. ``rich`` позволяет применять цвета, стили (жирный, курсив, подчеркнутый), составлять таблицы, выделять синтаксис кода и многое другое, что значительно улучшает визуальное восприятие текста. +По умолчанию в ``Argenta`` используется библиотека ``rich`` для вывода текста с расширенным форматированием в консоли. ``rich`` позволяет применять цвета, стили (жирный, курсив, подчеркнутый), составлять таблицы, выделять синтаксис кода и многое другое, что значительно улучшает визуальное восприятие текста. Вывод системных сообщений производится с помощью метода ``print`` объекта ``Console`` из библиотеки ``rich``, который обладает интерфейсом, совместимым со встроенной функцией ``print``. @@ -12,46 +12,32 @@ Управление стандартным форматированием -------------------------------------- -При создании экземпляра класса ``App`` предусмотрен параметр ``overridesystemmessages`` типа ``bool`` (по умолчанию ``False``), который позволяет включать или отключать стандартное форматирование системных сообщений. +При создании экземпляра класса ``App`` предусмотрен параметр ``override_system_messages`` типа ``bool`` (по умолчанию ``False``), который позволяет включать или отключать стандартное форматирование системных сообщений. Если установить этот флаг в ``True``, стандартное форматирование, применяемое по умолчанию (например, стилизация текста и ASCII-арт), будет отключено, и системные сообщения будут выводиться в "сыром" виде, без дополнительных стилей. +----- + Приветственное и прощальное сообщения -------------------------------------- -Приветственное (``initialmessage``) и прощальное (``farewellmessage``) сообщения по умолчанию формируются как ASCII-графика с помощью библиотеки ``art``. В частности, используется функция ``text2art``, которая преобразует обычный текст в стилизованное ASCII-арт изображение. +Приветственное (``initial_message``) и прощальное (``farewell_message``) сообщения по умолчанию формируются как ASCII-графика с помощью библиотеки ``art``. В частности, используется функция ``text2art``, которая преобразует обычный текст в стилизованное ASCII-арт изображение. .. warning:: - Библиотека ``art`` ориентирована на работу с ASCII-символами и **не поддерживает корректный вывод кириллицы**. Это приводит к искажению или некорректному отображению символов русского и других кириллических алфавитов. Если ваше приветственное сообщение содержит кириллицу, рекомендуется отключить стандартное форматирование с помощью ``overridesystemmessages=True`` или использовать только латинские символы. + Библиотека ``art`` ориентирована на работу с ASCII-символами и **не поддерживает корректный вывод кириллицы**. Это приводит к искажению или некорректному отображению символов русского и других кириллических алфавитов. Если ваше приветственное сообщение содержит кириллицу, рекомендуется отключить стандартное форматирование с помощью ``override_system_messages=True`` или использовать только латинские символы. + +----- Кастомизация вывода ------------------- -Для полной замены логики вывода сообщений в конструкторе ``App`` доступен параметр ``printfunc``. +Для полной замены логики вывода сообщений в конструкторе ``App`` доступен параметр ``print_func``. -* **printfunc**: ``Printer`` (Callable) - Этот параметр позволяет передать любую вызываемую сущность (например, функцию), которая будет использоваться для вывода всех системных сообщений. По умолчанию это обертка вокруг ``rich.console.Console().print``. Вы можете передать сюда свою функцию, чтобы, например, логировать вывод в файл или отправлять его по сети. +* **print_func**: ``Printer`` - Протокол ``Printer`` соответствует ``Callable[[str], None]``. + Этот параметр позволяет передать любую вызываемую сущность (например, функцию или лямбду), которая будет использоваться для вывода всех системных сообщений. По умолчанию это обертка вокруг ``rich.console.Console().print``. Вы можете передать сюда свою функцию, чтобы, например, логировать вывод в файл или отправлять его по сети. Пример использования -------------------- -.. code-block:: python - - from argenta import App - - def custom_print_function(text: str) -> None: - """Простая пользовательская функция вывода с префиксом.""" - print(f"MOЙ ВЫВОД: {text}") - - # Инициализация приложения с отключенным форматированием по умолчанию - # и собственной функцией вывода. - app = App( - initialmessage="Moe Prilojenie", - overridesystemmessages=True, - printfunc=custom_print_function, - ) - - # При запуске `initialmessage` будет выведено через `custom_print_function` - # без преобразования в ASCII-арт и без стилей `rich`. - # app.run() - +.. literalinclude:: ../code_snippets/overriding_format_example_sample.py + :language: python