mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
+5
-6
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user