Dividing Lines

Разделительные линии в Argenta используются для визуального структурирования вывода и отделения блоков информации друг от друга. Библиотека предлагает два типа линий: статическую и динамическую.


StaticDividingLine

StaticDividingLine создаёт разделительную линию фиксированной длины. Этот тип линии полезен для создания предсказуемого и унифицированного интерфейса.

1   def __init__(self, unit_part: str = "-", *,
2                length: int = 25) -> None

Создаёт экземпляр статической разделительной линии.

  • unit_part: Символ для построения линии (учитывается только первый символ). По умолчанию: -.

  • length: Фиксированная длина линии. По умолчанию: 25.


DynamicDividingLine

DynamicDividingLine создаёт линию, длина которой динамически подстраивается под самую длинную строку в выводе команды. Это требует перехвата stdout, в результате чего разделители идеально обрамляют выводимый контент.

1 __init__(self, unit_part: str = "-") -> None

Создаёт экземпляр динамической разделительной линии.

  • unit_part: Символ для построения линии. По умолчанию: -.

Длина вычисляется автоматически и не задаётся при инициализации.

Предупреждение

Обязательно почитайте про нюансы использования динамических линий и перехвата stdout в этом разделе.


Назначение и использование

Выбор между статической и динамической линией зависит от ваших задач.

  • StaticDividingLine идеально подходит, если:

    • Вам нужен строгий и консистентный дизайн.

    • Вы используете роутеры с отключённым перехватом stdout (disable_redirect_stdout=True), где динамическое вычисление длины невозможно.

  • DynamicDividingLine (поведение по умолчанию) — предпочтительный выбор, если:

    • Вы хотите, чтобы интерфейс был адаптивным.

    • Вывод ваших команд имеет разную длину.

    • В ваших обработчиках нет интерактивных операций ввода (например, input()).

Тип разделителя для всего приложения задаётся при инициализации App через параметр dividing_line.