mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
.. _contributing:
|
||||
|
||||
Вклад в проект
|
||||
***************************
|
||||
|
||||
``argenta`` открытый проект и мы рады новым разработчикам в нашем сообществе.
|
||||
|
||||
Getting started
|
||||
========================
|
||||
@@ -0,0 +1,4 @@
|
||||
.. _DependencyInjection:
|
||||
|
||||
Внедрение зависимостей
|
||||
****************************
|
||||
@@ -0,0 +1,7 @@
|
||||
Обработка ошибок
|
||||
==========================================
|
||||
|
||||
Конфигурация
|
||||
********************************
|
||||
|
||||
привет
|
||||
@@ -0,0 +1,58 @@
|
||||
.. 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 нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп,
|
||||
в котором у него есть доступ к созданной функциональности.
|
||||
|
||||
Один из основных принципов библиотеки это цикличность, это значит, что после ввода юзером команды он не выходит из скоупа, в этом основное
|
||||
отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. Выход из скоупа контролируется самим юзером.
|
||||
|
||||
**Ключевые особенности:**
|
||||
|
||||
* **Обработчики**. Объекты представления приложения, непосредственные обработчики введённых команд. Создание обработчиков максимально декларативно
|
||||
* **Маршрутизаторы**. Объекты маршрутизации, которые регистрируют обработчиков, позволяя создавать кастомные настройки для групп обработчиков, а также семантически их разделять.
|
||||
* **Приложение**. Объект управления жизненным циклом приложения, подключения созданных маршрутизаторов, конфигурирования различных вторичных утилит, таких как автокомплит, логирование и т.д.
|
||||
* **Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и управляет всеми остальными компонентами программы.
|
||||
* **Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и предоставляет возможность инжектирования зависимостей в хэндлерах, резолвя тайпхинты, подробнее_.
|
||||
|
||||
.. _подробнее: https://dishka.readthedocs.io/en/stable/di_intro.html
|
||||
|
||||
* **Поддержка флагов**. Библиотека поддерживает определение флагов, введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, отдавая понятные сущности.
|
||||
* **Поддержка аргументов**. Осуществленна поддержка аргументов командной строки, позволяя пользователю передавать различные параметры при запуске приложения.
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
:caption: Контент:
|
||||
|
||||
quickstart
|
||||
error_handling
|
||||
dependency_injection
|
||||
overriding_formatting
|
||||
redirect_stdout
|
||||
../api/index
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
:caption: Для разработчиков:
|
||||
|
||||
contributing
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
:caption: Ссылки проекта:
|
||||
|
||||
GitHub <https://github.com/koloideal/argenta>
|
||||
PyPI <https://pypi.org/project/argenta>
|
||||
@@ -0,0 +1,4 @@
|
||||
.. _overriding_formatting:
|
||||
|
||||
Переопределение форматирования
|
||||
*****************************************
|
||||
@@ -0,0 +1,27 @@
|
||||
.. _quickstart:
|
||||
|
||||
Быстрый старт
|
||||
********************
|
||||
|
||||
1. **Установка** ``Argenta``
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
pip install argenta
|
||||
|
||||
2. **Определение роутера и хэндлеров**, за регистрацию функции как обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен принимать аргумент с типом ``Response``, подробнее в :ref:`разделе <Response>`.
|
||||
|
||||
.. literalinclude:: ../code_snippets/quickstart_example_routers.py
|
||||
:language: python
|
||||
|
||||
3. **Определение приложения и оркестратора**, для запуска приложения необходимо вызвать ``.include_router()`` у созданного приложения и передать ему раннее созданный роутер, после этого необходимо вызвать ``.start_polling()`` у созданного оркестратора и передать ему созданное приложение.
|
||||
|
||||
.. literalinclude:: ../code_snippets/quickstart_example_main.py
|
||||
:language: python
|
||||
|
||||
4. **Запуск приложения**, запускаем приложение как обычный процесс.
|
||||
|
||||
|
||||
.. image:: https://github.com/koloideal/Argenta/blob/docs/create_docs/imgs/mock_app_preview5.png?raw=true
|
||||
:alt: Quickstart Example
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Перенаправление стандартного вывода
|
||||
***********************************
|
||||
|
||||
Reference in New Issue
Block a user