mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
69 lines
4.4 KiB
ReStructuredText
69 lines
4.4 KiB
ReStructuredText
.. Argenta documentation master file, created by
|
|
sphinx-quickstart on Sat Oct 11 19:54:43 2025.
|
|
You can adapt this file completely to your liking, but it should at least
|
|
contain the root `toctree` directive.
|
|
|
|
Argenta
|
|
=======
|
|
|
|
**Библиотека для построения модульных CLI-приложений с простым и приятным API.**
|
|
|
|
Если у вас есть функциональность, которую вы хотите предоставить в виде CLI-приложения, Argenta поможет вам в этом.
|
|
Основная цель библиотеки — дать разработчикам возможность сосредоточиться на реализации своих идей, предоставляя для этого удобные абстракции.
|
|
|
|
.. image:: https://github.com/koloideal/Argenta/blob/main/imgs/mock_app_preview4.png?raw=True
|
|
:alt: Пример приложения
|
|
|
|
Argenta предназначена для создания приложений, работающих в собственном контексте (scope). Это означает, что при запуске пользователь входит в интерактивную сессию, где ему доступна вся реализованная вами функциональность.
|
|
|
|
Один из ключевых принципов библиотеки — цикличность. После выполнения команды пользователь остаётся в интерактивной сессии, в отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. Выход из сессии контролируется самим пользователем.
|
|
|
|
**Ключевые особенности:**
|
|
|
|
* **Интерактивные сессии**. В отличие от традиционных CLI-инструментов, Argenta создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение.
|
|
* **Декларативный синтаксис**. Команды и их обработчики объявляются с помощью простых декораторов, что делает код чистым и интуитивно понятным.
|
|
* **Встроенное внедрение зависимостей (DI)**. Благодаря интеграции с `dishka <https://dishka.readthedocs.io/en/stable/>`_, вы можете легко внедрять сервисы (например, подключения к БД) прямо в обработчики команд, что упрощает их тестирование и переиспользование.
|
|
* **Автоматическая валидация и парсинг**. Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их парсинг, валидацию и преобразование типов.
|
|
* **Гибкая настройка**. Вы можете легко кастомизировать системные сообщения, форматирование вывода и даже перенаправлять стандартный вывод (stdout) в свои обработчики.
|
|
|
|
Архитектура и жизненный цикл
|
|
-----------------------------
|
|
|
|
Следующая диаграмма иллюстрирует, как компоненты Argenta взаимодействуют друг с другом, обрабатывая ввод пользователя.
|
|
|
|
.. image:: https://i.ibb.co/hF3FdFr1/argenta-intro-drawio-2.png
|
|
:alt: Request Lifecycle Diagram
|
|
:align: center
|
|
|
|
.. toctree::
|
|
:hidden:
|
|
:caption: Контент:
|
|
|
|
root/quickstart
|
|
root/error_handling
|
|
root/flags
|
|
root/overriding_formatting
|
|
root/api/index
|
|
|
|
.. toctree::
|
|
:hidden:
|
|
:caption: Продвинутое использование:
|
|
|
|
root/redirect_stdout
|
|
root/dependency_injection
|
|
root/testing
|
|
|
|
.. toctree::
|
|
:hidden:
|
|
:caption: Для разработчиков:
|
|
|
|
root/contributing
|
|
root/code_of_conduct
|
|
|
|
.. toctree::
|
|
:hidden:
|
|
:caption: Ссылки проекта:
|
|
|
|
GitHub <https://github.com/koloideal/argenta>
|
|
PyPI <https://pypi.org/project/argenta>
|