Update documentation and code snippets

This commit is contained in:
2025-12-04 18:17:36 +03:00
parent be083bb64d
commit 9179eb8468
23 changed files with 33 additions and 83 deletions
+2 -2
View File
@@ -83,7 +83,7 @@ App
``App`` позволяет настраивать реакцию на различные события, такие как ошибки ввода или неизвестные команды.
.. hint::
Подробнее о исключениях и их обработке в соответствующем :ref:`разделе документации <root_error_handling>`.
Подробнее об исключениях и их обработке в соответствующем :ref:`разделе документации <root_error_handling>`.
-----
@@ -148,7 +148,7 @@ PredefinedMessages
``PredefinedMessages`` — это контейнер, содержащий набор готовых к использованию сообщений. Они отформатированы с использованием синтаксиса ``rich`` и предназначены для вывода стандартной информации, такой как подсказки по использованию.
Реккомендуется использовать их при старте приложения.
Рекомендуется использовать их при старте приложения.
.. code-block:: python
:linenos:
+1 -1
View File
@@ -51,7 +51,7 @@ Command
:linenos:
.. seealso ::
Подробнее про флаги: :ref:`Flags <root_api_command_flags>` и :ref:`Флаги вводимых команд <root_flags>`.
Подробнее про флаги: :ref:`Flags <root_api_command_flags>` и :ref:`Флаги команд <root_flags>`.
-----
+1 -1
View File
@@ -32,7 +32,7 @@ Response
* ``status``: Общий статус валидации флагов из перечисления ``ResponseStatus``.
* ``input_flags``: Коллекция введённых флагов (``InputFlags``). По умолчанию — пустая.
.. warning ::
.. warning::
Экземпляры этого класса не предназначены для прямого создания. Они автоматически формируются системой и передаются в обработчик команды в качестве первого обязательного аргумента.
**Атрибуты:**
+1 -1
View File
@@ -55,7 +55,7 @@
Встроенные провайдеры
-----------------------
``Argenta`` поставляется со встроенным провайдером, который даёт доступ к важным системным зависимостям без дополнительной настройки. Например, вы можете получить объект ``ArgSpace``, который содержит аргументы командной строки, переданные при запуске приложения.
``Argenta`` поставляется со встроенным провайдером, который даёт доступ к важным системным зависимостям без дополнительной настройки. Например, вы можете получить объект :ref:`ArgSpace <root_api_orchestrator_argspace>`, который содержит аргументы командной строки, переданные при запуске приложения.
**Пример использования:**
+13 -22
View File
@@ -73,12 +73,9 @@
Флаги против аргументов
-----------------------
В контексте Argenta флаги и аргументы относятся к разным уровням взаимодействия с приложением и имеют принципиально разные сферы действия.
В контексте Argenta флаги и аргументы относятся к разным уровням взаимодействия с приложением.
Определение и назначение
~~~~~~~~~~~~~~~~~~~~~~~~
**Аргументы** — это параметры, передаваемые при запуске приложения один раз при инициализации. Они определяют глобальное состояние и конфигурацию приложения на протяжении всей его работы, например адрес базы данных, уровень логирования или режим работы.
**Аргументы** — это параметры, передаваемые при запуске приложения. Они определяют глобальную конфигурацию на протяжении всей его работы (например, адрес базы данных, уровень логирования).
.. seealso:: API и более подробное описание в разделах :ref:`ArgParser <root_api_orchestrator_argparser>` и :ref:`Arguments <root_api_orchestrator_arguments>`.
@@ -91,34 +88,28 @@
Ключевые различия
~~~~~~~~~~~~~~~~~
**Время жизни и область действия**
Аргументы передаются один раз при запуске приложения и сохраняют действие на весь период работы (скоуп **APP**). Флаги наоборот локальны и живут в рамках скоупа **REQUEST**.
**Время жизни**
Аргументы передаются один раз при запуске и действуют на весь период работы приложения. Флаги локальны и существуют только в рамках выполнения команды.
**Частота изменения**
Для изменения аргументов необходимо перезапустить приложение. Флаги можно менять между каждым вводом команды без остановки приложения.
**Изменяемость**
Для изменения аргументов необходимо перезапустить приложение. Флаги можно менять при каждом вводе команды.
**Уровень конфигурации**
Аргументы управляют глобальной конфигурацией приложения и его окружением. Флаги управляют поведением отдельных команд и операций пользователя.
**Использование**
Аргументы задают начальное состояние системы: что подключить, как работать. Флаги управляют тактикой выполнения команд: как её выполнить, с какими изменениями.
**Назначение**
Аргументы управляют глобальной конфигурацией приложения. Флаги управляют поведением отдельных команд.
-----
Практические примеры в Argenta
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Практические примеры
~~~~~~~~~~~~~~~~~~~~
При запуске приложения Argenta передаются аргументы:
Аргументы при запуске приложения:
- Адрес подключения к базе данных
- Режим работы (production, development, testing)
- Уровень логирования
- Путь к конфигурационным файлам
В интерактивной сессии для каждой команды указываются флаги:
Флаги в интерактивной сессии:
- ``deploy --verbose --dry-run`` — для текущей команды развёртывания
- ``deploy --verbose --dry-run`` — для команды развёртывания
- ``backup --compress --encrypted`` — для команды резервного копирования
- ``test --parallel --coverage`` — для команды тестирования
Один пользователь может выполнить разные команды с разными флагами в одной сессии приложения, без необходимости перезапуска с новыми аргументами.
+1 -1
View File
@@ -12,7 +12,7 @@
При создании экземпляра ``App`` можно использовать параметр ``override_system_messages: bool`` (по умолчанию ``False``), который позволяет отключать стандартное форматирование.
Если установить его в ``True``, стилизация текста и ASCII-арт будут отключены, а системные сообщения — выводиться в «сыром» виде.
Если установить его в ``True``, стилизация текста и ASCII-графика будут отключены, а системные сообщения — выводиться в «сыром» виде.
-----
+2 -2
View File
@@ -5,8 +5,8 @@
В этом руководстве мы рассмотрим два примера создания CLI-приложения с помощью Argenta:
* **Простой пример**: Минимальное приложение, быстрое знакомство с основными компонентами.
* **Более сложный пример**: Полнофункциональное приложение «Менеджер задач» с внедрением зависимостей и бизнес-логикой.
* **Простой пример**: минимальное приложение для быстрого знакомства с основными компонентами.
* **Более сложный пример**: полнофункциональное приложение «Менеджер задач» с внедрением зависимостей и бизнес-логикой.
Простой пример
---------------
+1 -1
View File
@@ -17,7 +17,7 @@
.. image:: https://i.ibb.co/yn9rWnNC/2025-11-07-180751.png
:alt: Example of an application with a dynamic dividing line
Как вы можете заметить разделительная линия ровно той же длины, что и самая длинная строка в выводе.
Как вы можете заметить, разделительная линия ровно той же длины, что и самая длинная строка в выводе.
То же приложение с статической линией:
+3 -1
View File
@@ -48,7 +48,9 @@ E2E-тестирование цикла
Полный запуск цикла ``start_polling`` можно покрывать через подпроцесс с передачей строк в ``stdin``. Это тяжелее и обычно не требуется. Если всё же необходимо — пример ниже.
.. danger::
Обязательно передавайте строковый триггер команды выхода последним элементом в списке, который передаёте в контекстном менеджере при патче ``input`` как аргумент ``side_effects``, иначе тестируемое приложение будет ожидать ввода следующей команды и не сможет корректно завершиться.
**Важно:** Обязательно передавайте строковый триггер команды выхода последним элементом в списке ``side_effects`` при патче ``input``.
Иначе тестируемое приложение будет ожидать ввода следующей команды и не сможет корректно завершиться.
**Пример использования:**