This commit is contained in:
2025-11-02 00:36:06 +03:00
parent df7313912c
commit 15f97eab61
2 changed files with 76 additions and 6 deletions
+5 -6
View File
@@ -20,12 +20,11 @@ Argenta предназначена для создания приложений,
**Ключевые особенности:**
* **Обработчики (Handlers)**. Компоненты, отвечающие за исполнение введённых команд. Их создание максимально декларативно.
* **Маршрутизаторы (Routers)**. Регистрируют обработчики, позволяя группировать их и задавать общие настройки.
* **Приложение (App)**. Управляет жизненным циклом приложения, подключает маршрутизаторы и настраивает утилиты, такие как автодополнение и логирование.
* **Оркестратор (Orchestrator)**. Конфигурирует, запускает и управляет всеми компонентами приложения.
* **Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka``, что позволяет внедрять зависимости в обработчики по типам. `Подробнее <https://dishka.readthedocs.io/en/stable/di_intro.html>`_.
* **Флаги и аргументы**. Библиотека автоматически парсит и валидирует флаги и аргументы, переданные вместе с командой.
* **Интерактивные сессии**. В отличие от традиционных CLI-инструментов, Argenta создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение.
* **Декларативный синтаксис**. Команды и их обработчики объявляются с помощью простых декораторов, что делает код чистым и интуитивно понятным.
* **Встроенное внедрение зависимостей (DI)**. Благодаря интеграции с `dishka <https://dishka.readthedocs.io/en/stable/>`_, вы можете легко внедрять сервисы (например, подключения к БД) прямо в обработчики команд, что упрощает их тестирование и переиспользование.
* **Автоматическая валидация и парсинг**. Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их парсинг, валидацию и преобразование типов.
* **Гибкая настройка**. Вы можете легко кастомизировать системные сообщения, форматирование вывода и даже перенаправлять стандартный вывод (stdout) в свои обработчики.
.. toctree::
:hidden:
+71
View File
@@ -16,6 +16,77 @@
Интерфейсы, не описанные в этом разделе, считаются внутренними. Их использование может привести к ошибкам при обновлении библиотеки. При разработке собственных решений используйте только компоненты, описанные здесь. Это обеспечит стабильность и совместимость ваших продуктов с будущими версиями ``Argenta``.
-----
Публичные импорты
-----------------
Все основные компоненты библиотеки доступны для прямого импорта из корневого пакета ``argenta`` или его подмодулей.
.. rubric:: Основные компоненты
.. code-block:: python
from argenta import (
App, Orchestrator, Router, Command, Response
)
* :ref:`App <root_api_app_index>` — Основной класс приложения.
* :ref:`Orchestrator <root_api_orchestrator_index>` — Класс для управления жизненным циклом.
* :ref:`Router <root_api_router>` — Класс для группировки и регистрации команд.
* :ref:`Command <root_api_command_index>` — Класс для создания команд.
* :ref:`Response <root_api_response>` — Объект ответа, передаваемый в обработчики.
.. rubric:: Команды и флаги
.. code-block:: python
from argenta.command import (
Flag,
Flags,
InputFlag,
InputFlags,
PossibleValues,
ValidationStatus,
PredefinedFlags
)
* :ref:`Flag <root_api_command_flag>` — Класс для описания флага.
* :ref:`Flags <root_api_command_flags>` — Коллекция для регистрации флагов.
* :ref:`InputFlag <root_api_command_input_flag>` — Класс для введённого пользователем флага.
* :ref:`InputFlags <root_api_command_input_flags>` — Коллекция введённых флагов.
* :ref:`PossibleValues <root_api_command_possible_values>` — Правила валидации значений флагов.
* :ref:`ValidationStatus <root_api_command_validation_status>` — Статусы валидации флагов.
* ``PredefinedFlags`` — Готовые наборы флагов (например, ``--help``).
.. rubric:: Настройка приложения
.. code-block:: python
from argenta.app import (
AutoCompleter,
StaticDividingLine,
DynamicDividingLine,
PredefinedMessages
)
* :ref:`AutoCompleter <root_api_app_autocompleter>` — Базовый класс для автодополнения.
* :ref:`StaticDividingLine <root_api_app_dividing_lines>` — Статическая разделительная линия.
* :ref:`DynamicDividingLine <root_api_app_dividing_lines>` — Динамическая разделительная линия.
* ``PredefinedMessages`` — Готовые системные сообщения.
.. rubric:: Внедрение зависимостей
.. code-block:: python
from argenta.di import (
FromDishka,
inject
)
* :ref:`FromDishka <root_dependency_injection>` — Маркер для внедрения зависимостей.
* :ref:`inject <root_dependency_injection>` — Декоратор для асинхронного внедрения.
.. toctree::
:hidden: