This commit is contained in:
2025-10-15 14:47:36 +03:00
parent bd37fab1ce
commit 2275ec1d00
11 changed files with 19 additions and 13 deletions
@@ -1,9 +1,9 @@
# routers.py # routers.py
from argenta import Router, Response from argenta import Router, Response, Command
router = Router() router = Router(title="Quickstart Example")
@router.command("hello") @router.command(Command("hello", description="Say hello"))
def handler(response: Response): def handler(response: Response):
print("Hello, world!") print("Hello, world!")
+1 -1
View File
@@ -9,7 +9,7 @@
project = "Argenta" project = "Argenta"
copyright = "2025, kolo" copyright = "2025, kolo"
author = "kolo" author = "kolo"
master_doc = "index" master_doc = "root/index"
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
+6 -4
View File
@@ -4,18 +4,19 @@
contain the root `toctree` directive. contain the root `toctree` directive.
Argenta Argenta
============================================= *******
**Библиотека для построения модульных CLI-приложений с простым и приятным API.** **Библиотека для построения модульных CLI-приложений с простым и приятным API.**
У вас есть некая функциональность и вы хотите распространять её в виде cli? Argenta поможет вам. У вас есть некая функциональность и вы хотите распространять её в виде CLI? Argenta поможет вам.
Основная цель библиотеки дать возможность разработчикам сфокусироваться на реализации своих идей, предоставляя для этого удобные абстракциию. Основная цель библиотеки дать возможность разработчикам сфокусироваться на реализации своих идей, предоставляя для этого удобные абстракциию.
.. image:: https://github.com/koloideal/Argenta/blob/main/imgs/mock_app_preview4.png?raw=True .. image:: https://github.com/koloideal/Argenta/blob/main/imgs/mock_app_preview4.png?raw=True
:alt: Пример приложения :alt: Пример приложения
Argenta нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп, Argenta нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп,
в котором у него есть доступ к созданной функциональности в котором у него есть доступ к созданной функциональности.
Один из основных принципов библиотеки это цикличность, это значит, что после ввода юзером команды он не выходит из скоупа, в этом основное Один из основных принципов библиотеки это цикличность, это значит, что после ввода юзером команды он не выходит из скоупа, в этом основное
отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. Выход из скоупа контролируется самим юзером. отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. Выход из скоупа контролируется самим юзером.
@@ -39,8 +40,9 @@ Argenta нужна для создания приложений, которым
quickstart quickstart
error_handling error_handling
dependency_injection dependency_injection
overriding_formatting
redirect_stdout redirect_stdout
api/index ../api/index
.. toctree:: .. toctree::
:hidden: :hidden:
+4
View File
@@ -0,0 +1,4 @@
.. _overriding_formatting:
Переопределение форматирования
*****************************************
@@ -11,12 +11,12 @@
2. **Определение роутера и хэндлеров**, за регистрацию функции как обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен принимать аргумент с типом ``Response``, подробнее в :ref:`разделе <Response>`. 2. **Определение роутера и хэндлеров**, за регистрацию функции как обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен принимать аргумент с типом ``Response``, подробнее в :ref:`разделе <Response>`.
.. literalinclude:: ./code_snippets/quickstart_example_routers.py .. literalinclude:: ../code_snippets/quickstart_example_routers.py
:language: python :language: python
3. **Определение приложения и оркестратора**, для запуска приложения необходимо вызвать ``.include_router()`` у созданного приложения и передать ему раннее созданный роутер, после этого необходимо вызвать ``.start_polling()`` у созданного оркестратора и передать ему созданное приложение. 3. **Определение приложения и оркестратора**, для запуска приложения необходимо вызвать ``.include_router()`` у созданного приложения и передать ему раннее созданный роутер, после этого необходимо вызвать ``.start_polling()`` у созданного оркестратора и передать ему созданное приложение.
.. literalinclude:: ./code_snippets/quickstart_example_main.py .. literalinclude:: ../code_snippets/quickstart_example_main.py
:language: python :language: python
4. **Запуск приложения**, запускаем приложение как обычный процесс. 4. **Запуск приложения**, запускаем приложение как обычный процесс.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

+3 -3
View File
@@ -1,9 +1,9 @@
# routers.py # routers.py
from argenta import Router, Response from argenta import Router, Response, Command
router = Router() router = Router(title="Quickstart Example")
@router.command("hello") @router.command(Command("hello", description="Say hello"))
def handler(response: Response): def handler(response: Response):
print("Hello, world!") print("Hello, world!")