mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 18:15:28 +03:00
docs
This commit is contained in:
@@ -0,0 +1,14 @@
|
|||||||
|
from argenta import App
|
||||||
|
from argenta.app import StaticDividingLine, DynamicDividingLine
|
||||||
|
|
||||||
|
# Создание статической линии из символов "=" длиной 40
|
||||||
|
static_line = StaticDividingLine(unit_part="=", length=40)
|
||||||
|
|
||||||
|
# Создание динамической линии из символов "*"
|
||||||
|
dynamic_line = DynamicDividingLine(unit_part="*")
|
||||||
|
|
||||||
|
# Приложение со статической линией
|
||||||
|
app_with_static_line = App(dividing_line=static_line)
|
||||||
|
|
||||||
|
# Приложение с динамической линией (поведение по умолчанию, но с кастомным символом)
|
||||||
|
app_with_dynamic_line = App(dividing_line=dynamic_line)
|
||||||
@@ -9,7 +9,7 @@ Dividing Lines
|
|||||||
----
|
----
|
||||||
|
|
||||||
Класс ``StaticDividingLine``
|
Класс ``StaticDividingLine``
|
||||||
--------------------------
|
-----------------------------
|
||||||
|
|
||||||
``StaticDividingLine`` — это класс, который создает разделительную линию **фиксированной** длины. Длина и символ-заполнитель задаются при инициализации объекта. Этот тип линии полезен, когда вам нужен предсказуемый и унифицированный внешний вид интерфейса, независимо от содержимого вывода.
|
``StaticDividingLine`` — это класс, который создает разделительную линию **фиксированной** длины. Длина и символ-заполнитель задаются при инициализации объекта. Этот тип линии полезен, когда вам нужен предсказуемый и унифицированный внешний вид интерфейса, независимо от содержимого вывода.
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ Dividing Lines
|
|||||||
-----
|
-----
|
||||||
|
|
||||||
Класс ``DynamicDividingLine``
|
Класс ``DynamicDividingLine``
|
||||||
---------------------------
|
------------------------------
|
||||||
|
|
||||||
``DynamicDividingLine`` представляет собой более "умный" подход. Этот класс создает линию, длина которой **динамически** подстраивается под самую длинную строку, выведенную в консоль, в рамках выполнения одной команды. Это достигается за счет механизма перехвата `stdout`. В результате разделительные линии всегда идеально обрамляют выводимый контент, что выглядит очень аккуратно.
|
``DynamicDividingLine`` представляет собой более "умный" подход. Этот класс создает линию, длина которой **динамически** подстраивается под самую длинную строку, выведенную в консоль, в рамках выполнения одной команды. Это достигается за счет механизма перехвата `stdout`. В результате разделительные линии всегда идеально обрамляют выводимый контент, что выглядит очень аккуратно.
|
||||||
|
|
||||||
@@ -45,37 +45,31 @@ Dividing Lines
|
|||||||
.. warning::
|
.. warning::
|
||||||
Обязательно почитайте про нюансы использования динамических линий и перехвата ``stdout`` в :ref:`этом разделе<root_redirect_stdout>`.
|
Обязательно почитайте про нюансы использования динамических линий и перехвата ``stdout`` в :ref:`этом разделе<root_redirect_stdout>`.
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
Назначение и использование
|
Назначение и использование
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
Выбор между статической и динамической линией зависит от ваших потребностей в конкретном приложении или даже для конкретного `Router`.
|
Выбор между статической и динамической линией зависит от ваших потребностей в конкретном приложении или даже для конкретного ``Router``-а.
|
||||||
|
|
||||||
|
* **StaticDividingLine** идеально подходит, если:
|
||||||
|
|
||||||
* **`StaticDividingLine`** идеально подходит, если:
|
|
||||||
* Вам нужен строгий, консистентный дизайн.
|
* Вам нужен строгий, консистентный дизайн.
|
||||||
* Вы используете роутеры с отключенным перехватом `stdout` (`disable_redirect_stdout=True`), так как в этом случае динамическое вычисление длины невозможно.
|
* Вы используете роутеры с отключенным перехватом ``stdout`` (``disable_redirect_stdout=True``), так как в этом случае динамическое вычисление длины невозможно.
|
||||||
|
|
||||||
|
* **DynamicDividingLine** (используется по умолчанию) является предпочтительным выбором, если:
|
||||||
|
|
||||||
* **`DynamicDividingLine`** (используется по умолчанию) является предпочтительным выбором, если:
|
|
||||||
* Вы хотите, чтобы интерфейс выглядел аккуратно и адаптивно.
|
* Вы хотите, чтобы интерфейс выглядел аккуратно и адаптивно.
|
||||||
* Вывод ваших команд имеет разную длину, и вы хотите, чтобы рамки всегда соответствовали контенту.
|
* Вывод ваших команд имеет разную длину, и вы хотите, чтобы рамки всегда соответствовали контенту.
|
||||||
|
* В ваших хэндлерах нет ожидающих ``io`` операций.
|
||||||
|
|
||||||
Тип разделительной линии для всего приложения задается при инициализации `App` через параметр `dividing_line`.
|
Тип разделительной линии для всего приложения задается при инициализации ``App`` через параметр ``dividing_line``.
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
Пример конфигурации
|
Пример конфигурации
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
.. code-block:: python
|
.. literalinclude:: ../../../code_snippets/dividing_lines_example_sample.py
|
||||||
|
:language: python
|
||||||
from argenta.app import App
|
:linenos:
|
||||||
from argenta.app.dividing_line.models import StaticDividingLine, DynamicDividingLine
|
|
||||||
|
|
||||||
# Создание статической линии из символов "=" длиной 40
|
|
||||||
static_line = StaticDividingLine(unit_part="=", length=40)
|
|
||||||
|
|
||||||
# Создание динамической линии из символов "*"
|
|
||||||
dynamic_line = DynamicDividingLine(unit_part="*")
|
|
||||||
|
|
||||||
# Приложение со статической линией
|
|
||||||
app_with_static_line = App(dividing_line=static_line)
|
|
||||||
|
|
||||||
# Приложение с динамической линией (поведение по умолчанию, но с кастомным символом)
|
|
||||||
app_with_dynamic_line = App(dividing_line=dynamic_line)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user