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)
live-ru:
sphinx-autobuild -b html . _build/html/ -D language=ru
sphinx-autobuild -b html . _build/html/ru -D language=ru
serve-all:
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
:alt: Пример приложения
Argenta нужна для создания приложений, которым необходим свой скоуп, то есть: при запуске приложения юзер входит в абстрагированный скоуп,
в котором у него есть доступ к созданной функциональности
@@ -25,7 +26,9 @@ Argenta нужна для создания приложений, которым
* **Приложение**. Объект управления жизненным циклом приложения, подключения созданных маршрутизаторов, конфигурирования различных вторичных утилит, таких как автокомплит, логирование и т.д.
* **Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и управляет всеми остальными компонентами программы.
* **Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и предоставляет возможность инжектирования зависимостей в хэндлерах, резолвя тайпхинты, подробнее_.
.. _подробнее: https://dishka.readthedocs.io/en/stable/di_intro.html
* **Поддержка флагов**. Библиотека поддерживает определение флагов, введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, отдавая понятные сущности.
* **Поддержка аргументов**. Осуществленна поддержка аргументов командной строки, позволяя пользователю передавать различные параметры при запуске приложения.
+5 -2
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -20,6 +20,9 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
#: ../../api/index.rst:2
msgid "Public API"
msgid "Публичный API"
msgstr ""
#~ msgid "Public API"
#~ msgstr ""
+5 -2
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -20,7 +20,7 @@ msgstr ""
"Generated-By: Babel 2.17.0\n"
#: ../../contributing.rst:2
msgid "Contributing"
msgid "Вклад в проект"
msgstr ""
#: ../../contributing.rst:4
@@ -33,3 +33,6 @@ msgstr ""
msgid "Getting started"
msgstr ""
#~ msgid "Contributing"
#~ msgstr ""
+87 -9
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -19,23 +19,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../index.rst:11
#: ../../index.rst:35
msgid "Контент:"
msgstr "Content:"
#: ../../index.rst:20
#: ../../index.rst:45
msgid "Для разработчиков:"
msgstr "For developers:"
#: ../../index.rst:26
#: ../../index.rst:51
msgid "GitHub"
msgstr ""
#: ../../index.rst:26
#: ../../index.rst:51
msgid "PyPI"
msgstr ""
#: ../../index.rst:26
#: ../../index.rst:51
msgid "Ссылки проекта:"
msgstr "Project Links"
@@ -44,8 +44,86 @@ msgid "Argenta"
msgstr ""
#: ../../index.rst:9
#, fuzzy
msgid ""
"Python библиотека для построения модульных CLI-приложений с простым и "
"приятным API."
msgstr "Python library for building modular CLI applications with simple and agreeable API."
"**Библиотека для построения модульных CLI-приложений с простым и приятным"
" 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 ""
"Project-Id-Version: Argenta \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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -19,11 +19,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../quickstart.rst:2
msgid "Quickstart"
msgstr ""
#: ../../quickstart.rst:4
msgid "**Install Argenta**"
msgid "Быстрый старт"
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
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
shibuya
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",
"pytest>=8.3.2",
"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",
]
+2
View File
@@ -1,3 +1,5 @@
from argenta.app.models import App as App
from argenta.orchestrator.entity import Orchestrator as Orchestrator
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 Flags as Flags
from argenta.command.flag import PossibleValues as PossibleValues
from argenta.command.flag import (Flag as Flag,
Flags as Flags,
PossibleValues as PossibleValues)
from argenta.command.flag.defaults import PredefinedFlags as PredefinedFlags
from argenta.command.models import Command as Command
from argenta.command.models import InputCommand as InputCommand
from argenta.command.models import (Command as Command,
InputCommand as InputCommand)