From 15f97eab614798989d3f81d2463345135b918f62 Mon Sep 17 00:00:00 2001 From: kolo Date: Sun, 2 Nov 2025 00:36:06 +0300 Subject: [PATCH] docs --- docs/index.rst | 11 +++---- docs/root/api/index.rst | 71 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 6 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index d9e7ef6..311acd8 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -20,12 +20,11 @@ Argenta предназначена для создания приложений, **Ключевые особенности:** -* **Обработчики (Handlers)**. Компоненты, отвечающие за исполнение введённых команд. Их создание максимально декларативно. -* **Маршрутизаторы (Routers)**. Регистрируют обработчики, позволяя группировать их и задавать общие настройки. -* **Приложение (App)**. Управляет жизненным циклом приложения, подключает маршрутизаторы и настраивает утилиты, такие как автодополнение и логирование. -* **Оркестратор (Orchestrator)**. Конфигурирует, запускает и управляет всеми компонентами приложения. -* **Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka``, что позволяет внедрять зависимости в обработчики по типам. `Подробнее `_. -* **Флаги и аргументы**. Библиотека автоматически парсит и валидирует флаги и аргументы, переданные вместе с командой. +* **Интерактивные сессии**. В отличие от традиционных CLI-инструментов, Argenta создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение. +* **Декларативный синтаксис**. Команды и их обработчики объявляются с помощью простых декораторов, что делает код чистым и интуитивно понятным. +* **Встроенное внедрение зависимостей (DI)**. Благодаря интеграции с `dishka `_, вы можете легко внедрять сервисы (например, подключения к БД) прямо в обработчики команд, что упрощает их тестирование и переиспользование. +* **Автоматическая валидация и парсинг**. Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их парсинг, валидацию и преобразование типов. +* **Гибкая настройка**. Вы можете легко кастомизировать системные сообщения, форматирование вывода и даже перенаправлять стандартный вывод (stdout) в свои обработчики. .. toctree:: :hidden: diff --git a/docs/root/api/index.rst b/docs/root/api/index.rst index 1b58a35..96a7526 100644 --- a/docs/root/api/index.rst +++ b/docs/root/api/index.rst @@ -16,6 +16,77 @@ Интерфейсы, не описанные в этом разделе, считаются внутренними. Их использование может привести к ошибкам при обновлении библиотеки. При разработке собственных решений используйте только компоненты, описанные здесь. Это обеспечит стабильность и совместимость ваших продуктов с будущими версиями ``Argenta``. +----- + +Публичные импорты +----------------- + +Все основные компоненты библиотеки доступны для прямого импорта из корневого пакета ``argenta`` или его подмодулей. + +.. rubric:: Основные компоненты + +.. code-block:: python + + from argenta import ( + App, Orchestrator, Router, Command, Response + ) + +* :ref:`App ` — Основной класс приложения. +* :ref:`Orchestrator ` — Класс для управления жизненным циклом. +* :ref:`Router ` — Класс для группировки и регистрации команд. +* :ref:`Command ` — Класс для создания команд. +* :ref:`Response ` — Объект ответа, передаваемый в обработчики. + +.. rubric:: Команды и флаги + +.. code-block:: python + + from argenta.command import ( + Flag, + Flags, + InputFlag, + InputFlags, + PossibleValues, + ValidationStatus, + PredefinedFlags + ) + +* :ref:`Flag ` — Класс для описания флага. +* :ref:`Flags ` — Коллекция для регистрации флагов. +* :ref:`InputFlag ` — Класс для введённого пользователем флага. +* :ref:`InputFlags ` — Коллекция введённых флагов. +* :ref:`PossibleValues ` — Правила валидации значений флагов. +* :ref:`ValidationStatus ` — Статусы валидации флагов. +* ``PredefinedFlags`` — Готовые наборы флагов (например, ``--help``). + +.. rubric:: Настройка приложения + +.. code-block:: python + + from argenta.app import ( + AutoCompleter, + StaticDividingLine, + DynamicDividingLine, + PredefinedMessages + ) + +* :ref:`AutoCompleter ` — Базовый класс для автодополнения. +* :ref:`StaticDividingLine ` — Статическая разделительная линия. +* :ref:`DynamicDividingLine ` — Динамическая разделительная линия. +* ``PredefinedMessages`` — Готовые системные сообщения. + +.. rubric:: Внедрение зависимостей + +.. code-block:: python + + from argenta.di import ( + FromDishka, + inject + ) + +* :ref:`FromDishka ` — Маркер для внедрения зависимостей. +* :ref:`inject ` — Декоратор для асинхронного внедрения. + .. toctree:: :hidden: