mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 18:15:28 +03:00
update
This commit is contained in:
@@ -1,10 +1,7 @@
|
|||||||
from argenta.command import Command
|
from argenta import Command, Response, Router
|
||||||
from argenta.router import Router
|
|
||||||
|
|
||||||
user_router = Router(title="User Management")
|
user_router = Router(title="User Management")
|
||||||
|
|
||||||
|
|
||||||
@user_router.command(Command("add-user", description="Adds a new user"))
|
@user_router.command(Command("add-user", description="Adds a new user"))
|
||||||
def add_user_handler(response):
|
def add_user_handler(response: Response):
|
||||||
# Логика добавления пользователя
|
|
||||||
print("User added successfully!")
|
print("User added successfully!")
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
Orchestrator
|
Orchestrator
|
||||||
====================
|
====================
|
||||||
|
|
||||||
``Orchestrator`` — это высокоуровневый компонент, который управляет жизненным циклом приложения. Его главная задача — инициализация и конфигурация окружения, включая внедрение зависимостей (DI), парсинг аргументов командной строки и запуск основного цикла `App`.
|
``Orchestrator`` — это высокоуровневый компонент, который конфигурирует и оркестрирует приложение, парсер командной строки, ``di`` и остальные компоненты, находящиеся по иерархии на уровне с ``App``.
|
||||||
|
|
||||||
В то время как `App` отвечает за логику интерактивной сессии (ввод команд, маршрутизация), `Orchestrator` подготавливает окружение для его работы и служит точкой входа в приложение.
|
В то время как ``App`` отвечает за логику интерактивной сессии (ввод команд, маршрутизация), ``Orchestrator`` подготавливает окружение для его работы и служит точкой входа в приложение.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
@@ -27,9 +27,9 @@ Orchestrator
|
|||||||
|
|
||||||
Создаёт и конфигурирует экземпляр ``Orchestrator``.
|
Создаёт и конфигурирует экземпляр ``Orchestrator``.
|
||||||
|
|
||||||
* ``arg_parser``: Экземпляр `ArgParser`, отвечающий за парсинг аргументов командной строки при запуске скрипта (не путать с командами в интерактивном режиме).
|
* ``arg_parser``: Экземпляр ``ArgParser``, отвечающий за парсинг аргументов командной строки при запуске скрипта (не путать с командами в интерактивном режиме).
|
||||||
* ``custom_providers``: Список пользовательских провайдеров `dishka.Provider` для добавления ваших сервисов (например, подключений к БД или API-клиентов) в DI-контейнер.
|
* ``custom_providers``: Список пользовательских провайдеров ``dishka.Provider`` для добавления ваших сервисов (например, подключений к БД или API-клиентов) в DI-контейнер.
|
||||||
* ``auto_inject_handlers``: Если `True` (по умолчанию), `dishka` автоматически внедрит зависимости в обработчики команд, инспектируя их сигнатуры.
|
* ``auto_inject_handlers``: Если **True** (по умолчанию), ``dishka`` автоматически внедрит зависимости в обработчики команд, инспектируя их сигнатуры.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
@@ -38,25 +38,18 @@ Orchestrator
|
|||||||
|
|
||||||
.. py:method:: start_polling(self, app: App) -> None
|
.. py:method:: start_polling(self, app: App) -> None
|
||||||
|
|
||||||
Это главный метод, который запускает приложение. Он выполняет следующие шаги:
|
Это главный метод, который запускает приложение. Он запускает бесконечный цикл ввода -> вывода.
|
||||||
|
|
||||||
1. **Настройка DI**: Создаёт DI-контейнер на основе системного провайдера (предоставляет `ArgParser`) и пользовательских `custom_providers`.
|
:param app: Экземпляр ``App``, который будет запущен.
|
||||||
2. **Запуск основного цикла**: Запускает бесконечный цикл ожидания и обработки пользовательского ввода.
|
|
||||||
|
|
||||||
:param app: Экземпляр `App`, который будет запущен.
|
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Назначение и использование
|
Назначение и использование
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
``Orchestrator`` абстрагирует сложность, связанную с настройкой DI и парсингом стартовых аргументов. Типичный сценарий использования выглядит так:
|
``Orchestrator`` абстрагирует сложность, связанную с настройкой ``di`` и парсингом стартовых аргументов. Типичный сценарий использования выглядит так.
|
||||||
|
|
||||||
1. Создайте и настройте экземпляр `App` (добавьте роутеры).
|
Такой подход разделяет ответственности: ``App`` отвечает за логику интерактивной сессии, а ``Orchestrator`` — за подготовку окружения и запуск приложения.
|
||||||
2. Создайте экземпляр `Orchestrator`, передав в него DI-провайдеры.
|
|
||||||
3. Вызовите `orchestrator.start_polling(app)`, чтобы запустить приложение.
|
|
||||||
|
|
||||||
Такой подход разделяет ответственности: `App` отвечает за логику интерактивной сессии, а `Orchestrator` — за подготовку и запуск окружения.
|
|
||||||
|
|
||||||
Пример использования
|
Пример использования
|
||||||
--------------------
|
--------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user