mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
ce7e24b924
The entire public api is covered with documentation in two languages - Russian and English. the library now supports the latest three versions of python - 3.12, 3.13 and 3.14 minor design changes: now, when a Boolean flag is entered, its value is an empty string, not None. tests have been adapted to the supported versions of python, readmi has been redesigned in two languages, German is no longer available.
66 lines
3.5 KiB
ReStructuredText
66 lines
3.5 KiB
ReStructuredText
.. _root_api_app_dividing_lines:
|
|
|
|
Dividing Lines
|
|
==============
|
|
|
|
Разделительные линии в ``Argenta`` используются для визуального структурирования вывода и отделения блоков информации друг от друга. Библиотека предлагает два типа линий: статическую и динамическую.
|
|
|
|
-----
|
|
|
|
``StaticDividingLine``
|
|
----------------------
|
|
|
|
``StaticDividingLine`` создаёт разделительную линию **фиксированной** длины. Этот тип линии полезен для создания предсказуемого и унифицированного интерфейса.
|
|
|
|
.. code-block:: python
|
|
:linenos:
|
|
|
|
def __init__(self, unit_part: str = "-", *,
|
|
length: int = 25) -> None
|
|
|
|
Создаёт экземпляр статической разделительной линии.
|
|
|
|
* ``unit_part``: Символ для построения линии (учитывается только первый символ). По умолчанию: ``-``.
|
|
* ``length``: Фиксированная длина линии. По умолчанию: ``25``.
|
|
|
|
-----
|
|
|
|
``DynamicDividingLine``
|
|
-----------------------
|
|
|
|
``DynamicDividingLine`` создаёт линию, длина которой **динамически** подстраивается под самую длинную строку в выводе команды. Это требует перехвата ``stdout``, в результате чего разделители идеально обрамляют выводимый контент.
|
|
|
|
.. code-block:: python
|
|
:linenos:
|
|
|
|
__init__(self, unit_part: str = "-") -> None
|
|
|
|
Создаёт экземпляр динамической разделительной линии.
|
|
|
|
* ``unit_part``: Символ для построения линии. По умолчанию: ``-``.
|
|
|
|
Длина вычисляется автоматически и не задаётся при инициализации.
|
|
|
|
.. warning::
|
|
Обязательно почитайте про нюансы использования динамических линий и перехвата ``stdout`` в :ref:`этом разделе<root_redirect_stdout>`.
|
|
|
|
-----
|
|
|
|
Назначение и использование
|
|
---------------------------
|
|
|
|
Выбор между статической и динамической линией зависит от ваших задач.
|
|
|
|
* **StaticDividingLine** идеально подходит, если:
|
|
|
|
* Вам нужен строгий и консистентный дизайн.
|
|
* Вы используете роутеры с отключённым перехватом ``stdout`` (``disable_redirect_stdout=True``), где динамическое вычисление длины невозможно.
|
|
|
|
* **DynamicDividingLine** (поведение по умолчанию) — предпочтительный выбор, если:
|
|
|
|
* Вы хотите, чтобы интерфейс был адаптивным.
|
|
* Вывод ваших команд имеет разную длину.
|
|
* В ваших обработчиках нет интерактивных операций ввода (например, ``input()``).
|
|
|
|
Тип разделителя для всего приложения задаётся при инициализации ``App`` через параметр ``dividing_line``.
|