This commit is contained in:
2025-11-07 21:25:35 +03:00
parent 16e7cc21fb
commit 8edd59c1b8
11 changed files with 48 additions and 78 deletions
+7 -5
View File
@@ -14,14 +14,14 @@
Пример приложения с динамической разделительной линией:
.. image:: https://i.ibb.co/ZptzLJ1n/2025-11-03-121308.png
.. image:: https://i.ibb.co/yn9rWnNC/2025-11-07-180751.png
:alt: Example of an application with a dynamic dividing line
Как вы можете заметить разделительная линия ровно той же длины, что и самая длинная строка в выводе.
То же приложение с статической линией:
.. image:: https://i.ibb.co/YFGRY2c0/2025-11-03-121650.png
.. image:: https://i.ibb.co/P8B4xyp/2025-11-07-180330.png
:alt: Example of an application with a static dividing line
В этом примере разделительная линия имеет фиксированную длину (по умолчанию 25 символов).
@@ -31,7 +31,7 @@
Побочные эффекты перехвата ``stdout``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Главный побочный эффект этого механизма проявляется при использовании функций, которые одновременно ожидают ввод от пользователя и выводят приглашение в консоль. Классический пример — стандартная функция ``input()``.
Побочный эффект этого механизма проявляется при использовании функций, которые последовательно выводят текст в консоль и ожидают ввод от пользователя. Классический пример — стандартная функция ``input()``.
.. code-block:: python
:linenos:
@@ -41,7 +41,7 @@
print(f"Привет, {user_name}!")
.. warning::
При включённом перехвате ``stdout`` текст-приглашение (например, ``"Введите ваше имя: "``) **не будет выведен в консоль немедленно**. Он попадёт в буфер, и пользователь увидит только мигающий курсор. Текст приглашения отобразится лишь после завершения работы обработчика вместе с остальным выводом. Это может сбить пользователя с толку.
При включённом перехвате ``stdout`` текст (например, ``"Введите ваше имя: "``) **не будет выведен в консоль немедленно**. Он попадёт в буфер и отобразится лишь после завершения работы обработчика вместе с остальным выводом. Это может сбить пользователя с толку.
-----
@@ -72,9 +72,11 @@
* Требует включённого перехвата ``stdout`` (``disable_redirect_stdout=False`` в роутере).
2. **StaticDividingLine(length: int = 25)**
* Линия имеет фиксированную длину (по умолчанию 25 символов), которую можно задать через аргумент `length`.
* Линия имеет фиксированную длину (по умолчанию 25 символов), которую можно задать через аргумент ``length``.
* Используется принудительно для роутеров с ``disable_redirect_stdout=True``, так как без перехвата вывода невозможно определить динамическую длину.
-----
Настройка разделительной линии в `App`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~