mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
Update documentation and code snippets
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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>`.
|
||||
|
||||
-----
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ Response
|
||||
* ``status``: Общий статус валидации флагов из перечисления ``ResponseStatus``.
|
||||
* ``input_flags``: Коллекция введённых флагов (``InputFlags``). По умолчанию — пустая.
|
||||
|
||||
.. warning ::
|
||||
.. warning::
|
||||
Экземпляры этого класса не предназначены для прямого создания. Они автоматически формируются системой и передаются в обработчик команды в качестве первого обязательного аргумента.
|
||||
|
||||
**Атрибуты:**
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
Встроенные провайдеры
|
||||
-----------------------
|
||||
|
||||
``Argenta`` поставляется со встроенным провайдером, который даёт доступ к важным системным зависимостям без дополнительной настройки. Например, вы можете получить объект ``ArgSpace``, который содержит аргументы командной строки, переданные при запуске приложения.
|
||||
``Argenta`` поставляется со встроенным провайдером, который даёт доступ к важным системным зависимостям без дополнительной настройки. Например, вы можете получить объект :ref:`ArgSpace <root_api_orchestrator_argspace>`, который содержит аргументы командной строки, переданные при запуске приложения.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
|
||||
+13
-22
@@ -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`` — для команды тестирования
|
||||
|
||||
Один пользователь может выполнить разные команды с разными флагами в одной сессии приложения, без необходимости перезапуска с новыми аргументами.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
При создании экземпляра ``App`` можно использовать параметр ``override_system_messages: bool`` (по умолчанию ``False``), который позволяет отключать стандартное форматирование.
|
||||
|
||||
Если установить его в ``True``, стилизация текста и ASCII-арт будут отключены, а системные сообщения — выводиться в «сыром» виде.
|
||||
Если установить его в ``True``, стилизация текста и ASCII-графика будут отключены, а системные сообщения — выводиться в «сыром» виде.
|
||||
|
||||
-----
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
В этом руководстве мы рассмотрим два примера создания CLI-приложения с помощью Argenta:
|
||||
|
||||
* **Простой пример**: Минимальное приложение, быстрое знакомство с основными компонентами.
|
||||
* **Более сложный пример**: Полнофункциональное приложение «Менеджер задач» с внедрением зависимостей и бизнес-логикой.
|
||||
* **Простой пример**: минимальное приложение для быстрого знакомства с основными компонентами.
|
||||
* **Более сложный пример**: полнофункциональное приложение «Менеджер задач» с внедрением зависимостей и бизнес-логикой.
|
||||
|
||||
Простой пример
|
||||
---------------
|
||||
|
||||
@@ -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
|
||||
|
||||
Как вы можете заметить разделительная линия ровно той же длины, что и самая длинная строка в выводе.
|
||||
Как вы можете заметить, разделительная линия ровно той же длины, что и самая длинная строка в выводе.
|
||||
|
||||
То же приложение с статической линией:
|
||||
|
||||
|
||||
@@ -48,7 +48,9 @@ E2E-тестирование цикла
|
||||
Полный запуск цикла ``start_polling`` можно покрывать через подпроцесс с передачей строк в ``stdin``. Это тяжелее и обычно не требуется. Если всё же необходимо — пример ниже.
|
||||
|
||||
.. danger::
|
||||
Обязательно передавайте строковый триггер команды выхода последним элементом в списке, который передаёте в контекстном менеджере при патче ``input`` как аргумент ``side_effects``, иначе тестируемое приложение будет ожидать ввода следующей команды и не сможет корректно завершиться.
|
||||
**Важно:** Обязательно передавайте строковый триггер команды выхода последним элементом в списке ``side_effects`` при патче ``input``.
|
||||
|
||||
Иначе тестируемое приложение будет ожидать ввода следующей команды и не сможет корректно завершиться.
|
||||
|
||||
**Пример использования:**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user