continue create docs

This commit is contained in:
2025-10-15 14:26:33 +03:00
parent 6e3da8b4e4
commit bd37fab1ce
18 changed files with 238 additions and 26 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
live-ru: live-ru:
sphinx-autobuild -b html . _build/html/ -D language=ru sphinx-autobuild -b html . _build/html/ru -D language=ru
serve-all: serve-all:
sphinx-build -b html . _build/html/ -D language=en sphinx-build -b html . _build/html/ -D language=en
@@ -0,0 +1,14 @@
# main.py
from argenta import App, Orchestrator
from routers import router
app: App = App()
orchestrator: Orchestrator = Orchestrator()
def main() -> None:
app.include_router(router)
orchestrator.start_polling(app)
if __name__ == '__main__':
main()
@@ -0,0 +1,9 @@
# routers.py
from argenta import Router, Response
router = Router()
@router.command("hello")
def handler(response: Response):
print("Hello, world!")
+2
View File
@@ -1,3 +1,5 @@
.. _contributing:
Вклад в проект Вклад в проект
*************************** ***************************
+3
View File
@@ -12,6 +12,7 @@ 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: Пример приложения
Argenta нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп, Argenta нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп,
в котором у него есть доступ к созданной функциональности в котором у него есть доступ к созданной функциональности
@@ -25,7 +26,9 @@ Argenta нужна для создания приложений, которым
* **Приложение**. Объект управления жизненным циклом приложения, подключения созданных маршрутизаторов, конфигурирования различных вторичных утилит, таких как автокомплит, логирование и т.д. * **Приложение**. Объект управления жизненным циклом приложения, подключения созданных маршрутизаторов, конфигурирования различных вторичных утилит, таких как автокомплит, логирование и т.д.
* **Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и управляет всеми остальными компонентами программы. * **Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и управляет всеми остальными компонентами программы.
* **Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и предоставляет возможность инжектирования зависимостей в хэндлерах, резолвя тайпхинты, подробнее_. * **Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и предоставляет возможность инжектирования зависимостей в хэндлерах, резолвя тайпхинты, подробнее_.
.. _подробнее: https://dishka.readthedocs.io/en/stable/di_intro.html .. _подробнее: https://dishka.readthedocs.io/en/stable/di_intro.html
* **Поддержка флагов**. Библиотека поддерживает определение флагов, введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, отдавая понятные сущности. * **Поддержка флагов**. Библиотека поддерживает определение флагов, введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, отдавая понятные сущности.
* **Поддержка аргументов**. Осуществленна поддержка аргументов командной строки, позволяя пользователю передавать различные параметры при запуске приложения. * **Поддержка аргументов**. Осуществленна поддержка аргументов командной строки, позволяя пользователю передавать различные параметры при запуске приложения.
+5 -2
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 11:06+0300\n" "POT-Creation-Date: 2025-10-15 13:40+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -20,6 +20,9 @@ msgstr ""
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#: ../../api/index.rst:2 #: ../../api/index.rst:2
msgid "Public API" msgid "Публичный API"
msgstr "" msgstr ""
#~ msgid "Public API"
#~ msgstr ""
+5 -2
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 11:06+0300\n" "POT-Creation-Date: 2025-10-15 13:40+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -20,7 +20,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#: ../../contributing.rst:2 #: ../../contributing.rst:2
msgid "Contributing" msgid "Вклад в проект"
msgstr "" msgstr ""
#: ../../contributing.rst:4 #: ../../contributing.rst:4
@@ -33,3 +33,6 @@ msgstr ""
msgid "Getting started" msgid "Getting started"
msgstr "" msgstr ""
#~ msgid "Contributing"
#~ msgstr ""
+87 -9
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 11:06+0300\n" "POT-Creation-Date: 2025-10-15 14:19+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -19,23 +19,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#: ../../index.rst:11 #: ../../index.rst:35
msgid "Контент:" msgid "Контент:"
msgstr "Content:" msgstr "Content:"
#: ../../index.rst:20 #: ../../index.rst:45
msgid "Для разработчиков:" msgid "Для разработчиков:"
msgstr "For developers:" msgstr "For developers:"
#: ../../index.rst:26 #: ../../index.rst:51
msgid "GitHub" msgid "GitHub"
msgstr "" msgstr ""
#: ../../index.rst:26 #: ../../index.rst:51
msgid "PyPI" msgid "PyPI"
msgstr "" msgstr ""
#: ../../index.rst:26 #: ../../index.rst:51
msgid "Ссылки проекта:" msgid "Ссылки проекта:"
msgstr "Project Links" msgstr "Project Links"
@@ -44,8 +44,86 @@ msgid "Argenta"
msgstr "" msgstr ""
#: ../../index.rst:9 #: ../../index.rst:9
#, fuzzy
msgid "" msgid ""
"Python библиотека для построения модульных CLI-приложений с простым и " "**Библиотека для построения модульных CLI-приложений с простым и приятным"
"приятным API." " API.**"
msgstr "Python library for building modular CLI applications with simple and agreeable API." msgstr ""
"Python library for building modular CLI applications with simple and "
"agreeable API."
#: ../../index.rst:11
msgid ""
"У вас есть некая функциональность и вы хотите распространять её в виде "
"cli? Argenta поможет вам. Основная цель библиотеки дать возможность "
"разработчикам сфокусироваться на реализации своих идей, предоставляя для "
"этого удобные абстракциию."
msgstr ""
#: ../../index.rst:14
msgid "Пример приложения"
msgstr ""
#: ../../index.rst:17
msgid ""
"Argenta нужна для создания приложений, которым необходим свой скоуп, то "
"есть: при запуске приложения юзер входит в абстрагированный скоуп, в "
"котором у него есть доступ к созданной функциональности Один из основных "
"принципов библиотеки это цикличность, это значит, что после ввода юзером "
"команды он не выходит из скоупа, в этом основное отличие от таких "
"библиотек, как ``argparse``, ``click`` и ``typer``. Выход из скоупа "
"контролируется самим юзером."
msgstr ""
#: ../../index.rst:22
msgid "**Ключевые особенности:**"
msgstr ""
#: ../../index.rst:24
msgid ""
"**Обработчики**. Объекты представления приложения, непосредственные "
"обработчики введённых команд. Создание обработчиков максимально "
"декларативно"
msgstr ""
#: ../../index.rst:25
msgid ""
"**Маршрутизаторы**. Объекты маршрутизации, которые регистрируют "
"обработчиков, позволяя создавать кастомные настройки для групп "
"обработчиков, а также семантически их разделять."
msgstr ""
#: ../../index.rst:26
msgid ""
"**Приложение**. Объект управления жизненным циклом приложения, "
"подключения созданных маршрутизаторов, конфигурирования различных "
"вторичных утилит, таких как автокомплит, логирование и т.д."
msgstr ""
#: ../../index.rst:27
msgid ""
"**Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и"
" управляет всеми остальными компонентами программы."
msgstr ""
#: ../../index.rst:28
msgid ""
"**Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и"
" предоставляет возможность инжектирования зависимостей в хэндлерах, "
"резолвя тайпхинты, подробнее_."
msgstr ""
#: ../../index.rst:32
msgid ""
"**Поддержка флагов**. Библиотека поддерживает определение флагов, "
"введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, "
"отдавая понятные сущности."
msgstr ""
#: ../../index.rst:33
msgid ""
"**Поддержка аргументов**. Осуществленна поддержка аргументов командной "
"строки, позволяя пользователю передавать различные параметры при запуске "
"приложения."
msgstr ""
+32 -6
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 11:06+0300\n" "POT-Creation-Date: 2025-10-15 14:19+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -19,11 +19,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#: ../../quickstart.rst:2
msgid "Quickstart"
msgstr ""
#: ../../quickstart.rst:4 #: ../../quickstart.rst:4
msgid "**Install Argenta**" msgid "Быстрый старт"
msgstr "" msgstr ""
#: ../../quickstart.rst:6
msgid "**Установка** ``Argenta``"
msgstr ""
#: ../../quickstart.rst:12
msgid ""
"**Определение роутера и хэндлеров**, за регистрацию функции как "
"обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен"
" принимать аргумент с типом ``Response``, подробнее в :ref:`разделе "
"<Response>`."
msgstr ""
#: ../../quickstart.rst:17
msgid ""
"**Определение приложения и оркестратора**, для запуска приложения "
"необходимо вызвать ``.include_router()`` у созданного приложения и "
"передать ему раннее созданный роутер, после этого необходимо вызвать "
"``.start_polling()`` у созданного оркестратора и передать ему созданное "
"приложение."
msgstr ""
#~ msgid "Quickstart"
#~ msgstr ""
#~ msgid "**Install Argenta**"
#~ msgstr ""
#~ msgid "**Установка**"
#~ msgstr ""
@@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 13:40+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../redirect_stdout.rst:2
msgid "Перенаправление стандартного вывода"
msgstr ""
+20 -1
View File
@@ -1,8 +1,27 @@
.. _quickstart:
Быстрый старт Быстрый старт
******************** ********************
1. **Установка** 1. **Установка** ``Argenta``
.. code-block:: shell .. code-block:: shell
pip install argenta 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
+1
View File
@@ -1,3 +1,4 @@
sphinx sphinx
shibuya shibuya
sphinx-intl sphinx-intl
sphinx-autobuild
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

+14
View File
@@ -0,0 +1,14 @@
# main.py
from argenta import App, Orchestrator
from .routers import router
app: App = App()
orchestrator: Orchestrator = Orchestrator()
def main() -> None:
app.include_router(router)
orchestrator.start_polling(app)
if __name__ == '__main__':
main()
+9
View File
@@ -0,0 +1,9 @@
# routers.py
from argenta import Router, Response
router = Router()
@router.command("hello")
def handler(response: Response):
print("Hello, world!")
+4
View File
@@ -39,5 +39,9 @@ dev = [
"mypy>=1.14.1", "mypy>=1.14.1",
"pytest>=8.3.2", "pytest>=8.3.2",
"ruff>=0.12.12", "ruff>=0.12.12",
"shibuya>=2025.9.25",
"sphinx>=8.2.3",
"sphinx-autobuild>=2025.8.25",
"sphinx-intl>=2.3.2",
"wemake-python-styleguide>=0.17.0", "wemake-python-styleguide>=0.17.0",
] ]
+2
View File
@@ -1,3 +1,5 @@
from argenta.app.models import App as App from argenta.app.models import App as App
from argenta.orchestrator.entity import Orchestrator as Orchestrator from argenta.orchestrator.entity import Orchestrator as Orchestrator
from argenta.router.entity import Router as Router from argenta.router.entity import Router as Router
from argenta.response.entity import Response as Response
from argenta.command.models import Command as Command
+5 -5
View File
@@ -1,6 +1,6 @@
from argenta.command.flag import Flag as Flag from argenta.command.flag import (Flag as Flag,
from argenta.command.flag import Flags as Flags Flags as Flags,
from argenta.command.flag import PossibleValues as PossibleValues PossibleValues as PossibleValues)
from argenta.command.flag.defaults import PredefinedFlags as PredefinedFlags from argenta.command.flag.defaults import PredefinedFlags as PredefinedFlags
from argenta.command.models import Command as Command from argenta.command.models import (Command as Command,
from argenta.command.models import InputCommand as InputCommand InputCommand as InputCommand)