Files
Argenta/docs/root/overriding_formatting.rst
T
2025-11-07 17:00:34 +03:00

43 lines
3.0 KiB
ReStructuredText

.. _root_overriding_formatting:
Управление форматированием вывода
=================================
По умолчанию ``Argenta`` использует библиотеку ``rich`` для вывода текста с расширенным форматированием. Она позволяет применять цвета и стили, создавать таблицы, подсвечивать синтаксис и многое другое, что улучшает визуальное восприятие информации.
------
Управление стандартным форматированием
--------------------------------------
При создании экземпляра ``App`` можно использовать параметр ``override_system_messages: bool`` (по умолчанию ``False``), который позволяет отключать стандартное форматирование.
Если установить его в ``True``, стилизация текста и ASCII-арт будут отключены, а системные сообщения — выводиться в «сыром» виде.
-----
Приветственное и прощальное сообщения
--------------------------------------
Приветственное (``initial_message``) и прощальное (``farewell_message``) сообщения по умолчанию выводятся в виде ASCII-графики.
.. warning::
Библиотека ``art`` ориентирована на работу с ASCII-символами и **не поддерживает кириллицу**. Это приводит к искажению символов русского и других кириллических алфавитов. Если ваше сообщение содержит кириллицу, рекомендуется отключить форматирование с помощью ``override_system_messages=True`` или использовать только латинские символы.
-----
Кастомизация вывода
-------------------
Для полной замены логики вывода в конструкторе ``App`` предусмотрен параметр ``print_func``.
* **print_func**: ``Callable[[str], None]``
Этот параметр позволяет передать любую вызываемую сущность (например, функцию), которая будет использоваться для вывода всех системных сообщений. По умолчанию это обёртка над ``rich.console.Console().print``. Вы можете передать сюда свою функцию, чтобы, например, логировать вывод в файл или отправлять его по сети.
Пример использования
--------------------
.. literalinclude:: ../code_snippets/overriding_formatting/sample.py
:language: python
:linenos: