diff --git a/docs/code_snippets/quickstart_example_routers.py b/docs/code_snippets/quickstart_example_routers.py index 7e500eb..b03a2b7 100644 --- a/docs/code_snippets/quickstart_example_routers.py +++ b/docs/code_snippets/quickstart_example_routers.py @@ -1,9 +1,9 @@ # 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): print("Hello, world!") \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 957b3b2..0a39acb 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -9,7 +9,7 @@ project = "Argenta" copyright = "2025, kolo" author = "kolo" -master_doc = "index" +master_doc = "root/index" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/contributing.rst b/docs/root/contributing.rst similarity index 100% rename from docs/contributing.rst rename to docs/root/contributing.rst diff --git a/docs/dependency_injection.rst b/docs/root/dependency_injection.rst similarity index 100% rename from docs/dependency_injection.rst rename to docs/root/dependency_injection.rst diff --git a/docs/error_handling.rst b/docs/root/error_handling.rst similarity index 100% rename from docs/error_handling.rst rename to docs/root/error_handling.rst diff --git a/docs/index.rst b/docs/root/index.rst similarity index 96% rename from docs/index.rst rename to docs/root/index.rst index 91adb29..a8d7950 100644 --- a/docs/index.rst +++ b/docs/root/index.rst @@ -4,18 +4,19 @@ contain the root `toctree` directive. Argenta -============================================= +******* **Библиотека для построения модульных CLI-приложений с простым и приятным API.** -У вас есть некая функциональность и вы хотите распространять её в виде cli? Argenta поможет вам. +У вас есть некая функциональность и вы хотите распространять её в виде CLI? Argenta поможет вам. Основная цель библиотеки дать возможность разработчикам сфокусироваться на реализации своих идей, предоставляя для этого удобные абстракциию. .. image:: https://github.com/koloideal/Argenta/blob/main/imgs/mock_app_preview4.png?raw=True :alt: Пример приложения Argenta нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп, -в котором у него есть доступ к созданной функциональности +в котором у него есть доступ к созданной функциональности. + Один из основных принципов библиотеки это цикличность, это значит, что после ввода юзером команды он не выходит из скоупа, в этом основное отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. Выход из скоупа контролируется самим юзером. @@ -39,8 +40,9 @@ Argenta нужна для создания приложений, которым quickstart error_handling dependency_injection + overriding_formatting redirect_stdout - api/index + ../api/index .. toctree:: :hidden: diff --git a/docs/root/overriding_formatting.rst b/docs/root/overriding_formatting.rst new file mode 100644 index 0000000..15385ec --- /dev/null +++ b/docs/root/overriding_formatting.rst @@ -0,0 +1,4 @@ +.. _overriding_formatting: + +Переопределение форматирования +***************************************** diff --git a/docs/quickstart.rst b/docs/root/quickstart.rst similarity index 90% rename from docs/quickstart.rst rename to docs/root/quickstart.rst index aeabe96..07b0f2e 100644 --- a/docs/quickstart.rst +++ b/docs/root/quickstart.rst @@ -11,12 +11,12 @@ 2. **Определение роутера и хэндлеров**, за регистрацию функции как обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен принимать аргумент с типом ``Response``, подробнее в :ref:`разделе `. -.. literalinclude:: ./code_snippets/quickstart_example_routers.py +.. literalinclude:: ../code_snippets/quickstart_example_routers.py :language: python 3. **Определение приложения и оркестратора**, для запуска приложения необходимо вызвать ``.include_router()`` у созданного приложения и передать ему раннее созданный роутер, после этого необходимо вызвать ``.start_polling()`` у созданного оркестратора и передать ему созданное приложение. -.. literalinclude:: ./code_snippets/quickstart_example_main.py +.. literalinclude:: ../code_snippets/quickstart_example_main.py :language: python 4. **Запуск приложения**, запускаем приложение как обычный процесс. diff --git a/docs/redirect_stdout.rst b/docs/root/redirect_stdout.rst similarity index 100% rename from docs/redirect_stdout.rst rename to docs/root/redirect_stdout.rst diff --git a/imgs/mock_app_preview5.png b/imgs/mock_app_preview5.png index 768a085..2a00c4b 100644 Binary files a/imgs/mock_app_preview5.png and b/imgs/mock_app_preview5.png differ diff --git a/mock/min_app/routers.py b/mock/min_app/routers.py index 7e500eb..b03a2b7 100644 --- a/mock/min_app/routers.py +++ b/mock/min_app/routers.py @@ -1,9 +1,9 @@ # 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): print("Hello, world!") \ No newline at end of file