This commit is contained in:
2025-10-19 22:31:02 +03:00
parent 9ff00ee785
commit d146fc6b6b
2 changed files with 106 additions and 1 deletions
+52 -1
View File
@@ -3,4 +3,55 @@
Стандартное форматирование
==========================
ндааааааааааааааа
По умолчанию в ``Argenta`` используется библиотека ``rich`` для вывода текстовых сообщений с расширенным форматированием в консоли. ``rich`` позволяет применять цвета, стили (жирный, курсив, подчеркнутый), составлять таблицы, выделять синтаксис кода и многое другое, что значительно улучшает визуальное восприятие текста.
Вывод системных сообщений производится с помощью метода ``print`` объекта ``Console`` из библиотеки ``rich``, который обладает интерфейсом, совместимым со встроенной функцией ``print``.
------
Управление стандартным форматированием
--------------------------------------
При создании экземпляра класса ``App`` предусмотрен параметр ``overridesystemmessages`` типа ``bool`` (по умолчанию ``False``), который позволяет включать или отключать стандартное форматирование системных сообщений.
Если установить этот флаг в ``True``, стандартное форматирование, применяемое по умолчанию (например, стилизация текста и ASCII-арт), будет отключено, и системные сообщения будут выводиться в "сыром" виде, без дополнительных стилей.
Приветственное и прощальное сообщения
--------------------------------------
Приветственное (``initialmessage``) и прощальное (``farewellmessage``) сообщения по умолчанию формируются как ASCII-графика с помощью библиотеки ``art``. В частности, используется функция ``text2art``, которая преобразует обычный текст в стилизованное ASCII-арт изображение.
.. warning::
Библиотека ``art`` ориентирована на работу с ASCII-символами и **не поддерживает корректный вывод кириллицы**. Это приводит к искажению или некорректному отображению символов русского и других кириллических алфавитов. Если ваше приветственное сообщение содержит кириллицу, рекомендуется отключить стандартное форматирование с помощью ``overridesystemmessages=True`` или использовать только латинские символы.
Кастомизация вывода
-------------------
Для полной замены логики вывода сообщений в конструкторе ``App`` доступен параметр ``printfunc``.
* **printfunc**: ``Printer`` (Callable)
Этот параметр позволяет передать любую вызываемую сущность (например, функцию), которая будет использоваться для вывода всех системных сообщений. По умолчанию это обертка вокруг ``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()