mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
from argenta.command import Flags
|
from argenta.command import Flags, PredefinedFlags
|
||||||
from argenta.command.flag.defaults import PredefinedFlags
|
|
||||||
|
|
||||||
# Использование предопределенных флагов при создании команды
|
# Использование предопределенных флагов при создании команды
|
||||||
command_flags = Flags(
|
command_flags = Flags(
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
from argenta import App, Command, Orchestrator, Router, Response
|
||||||
|
from argenta.command import Flag
|
||||||
|
|
||||||
|
# 1. Создание экземпляра приложения и оркестратора
|
||||||
|
app = App(
|
||||||
|
prompt=">> ",
|
||||||
|
initial_message="Simple App",
|
||||||
|
farewell_message="Goodbye!",
|
||||||
|
)
|
||||||
|
orchestrator = Orchestrator()
|
||||||
|
|
||||||
|
# 2. Создание роутера для группировки команд
|
||||||
|
main_router = Router(title="Основные команды")
|
||||||
|
|
||||||
|
# 3. Определение команды и её обработчика
|
||||||
|
@main_router.command(Command(
|
||||||
|
"hello",
|
||||||
|
description="Печатает приветственное сообщение",
|
||||||
|
flags=Flag("name")
|
||||||
|
))
|
||||||
|
def hello_handler(response: Response):
|
||||||
|
"""Этот обработчик будет вызван для команды 'hello'."""
|
||||||
|
name = response.input_flags.get_flag_by_name("name")
|
||||||
|
if name:
|
||||||
|
print(f"Привет, {name.input_value}!")
|
||||||
|
else:
|
||||||
|
print("Привет, мир!")
|
||||||
|
|
||||||
|
# 4. Подключение роутера к приложению
|
||||||
|
app.include_router(main_router)
|
||||||
|
|
||||||
|
# 5. Запуск приложения
|
||||||
|
if __name__ == "__main__":
|
||||||
|
orchestrator.start_polling(app)
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
from argenta import Router, Response, Command
|
from argenta import Router, Response, Command, DataBridge
|
||||||
from argenta.command import Flag
|
from argenta.command import Flag
|
||||||
from argenta.data_bridge import DataBridge
|
|
||||||
from argenta.di import FromDishka
|
from argenta.di import FromDishka
|
||||||
|
|
||||||
# 1. Создаём роутер
|
# 1. Создаём роутер
|
||||||
|
|||||||
@@ -148,15 +148,27 @@ PredefinedMessages
|
|||||||
|
|
||||||
`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых к использованию строковых сообщений. Они отформатированы с использованием синтаксиса `rich` и предназначены для вывода стандартной информации, такой как подсказки по использованию.
|
`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых к использованию строковых сообщений. Они отформатированы с использованием синтаксиса `rich` и предназначены для вывода стандартной информации, такой как подсказки по использованию.
|
||||||
|
|
||||||
Вы можете импортировать и использовать их напрямую в своих обработчиках.
|
Реккомендуется использовать их при старте приложения.
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
|
from argenta import App, Orchestrator
|
||||||
from argenta.app import PredefinedMessages
|
from argenta.app import PredefinedMessages
|
||||||
|
|
||||||
def my_handler(response):
|
app: App = App()
|
||||||
print(PredefinedMessages.USAGE)
|
orchestrator: Orchestrator = Orchestrator()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
app.add_message_on_startup(PredefinedMessages.USAGE)
|
||||||
|
app.add_message_on_startup(PredefinedMessages.AUTOCOMPLETE)
|
||||||
|
app.add_message_on_startup(PredefinedMessages.HELP)
|
||||||
|
|
||||||
|
orchestrator.start_polling(app)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
||||||
|
|
||||||
.. py:class:: PredefinedMessages
|
.. py:class:: PredefinedMessages
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ DataBridge
|
|||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
from dishka.integrations.fastapi import FromDishka
|
from argenta.di import FromDishka
|
||||||
from argenta.bridge import DataBridge
|
from argenta import DataBridge, Response
|
||||||
|
|
||||||
def my_handler(data_bridge: FromDishka[DataBridge]):
|
def my_handler(response: Response, data_bridge: FromDishka[DataBridge]):
|
||||||
# ... ваш код
|
# ... ваш код
|
||||||
|
|
||||||
**Практический пример: Аутентификация**
|
**Практический пример: Аутентификация**
|
||||||
|
|||||||
@@ -166,10 +166,8 @@ PredefinedFlags
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Доступные флаги
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Информационные флаги
|
Информационные флаги
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
.. py:attribute:: PredefinedFlags.HELP
|
.. py:attribute:: PredefinedFlags.HELP
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
Обеспечение соблюдения
|
Обеспечение соблюдения
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
О случаях оскорбительного, преследовательского или иного неприемлемого поведения можно сообщить команде проекта по адресу [ВСТАВЬТЕ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ]. Все жалобы будут рассмотрены и расследованы оперативно и справедливо.
|
О случаях оскорбительного, преследовательского или иного неприемлемого поведения можно сообщить команде проекта по адресу kolo.is.main@gmail.com. Все жалобы будут рассмотрены и расследованы оперативно и справедливо.
|
||||||
|
|
||||||
Команда проекта обязуется уважать частную жизнь и безопасность заявителя.
|
Команда проекта обязуется уважать частную жизнь и безопасность заявителя.
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,29 @@
|
|||||||
.. _root_quickstart:
|
.. _root_quickstart:
|
||||||
|
|
||||||
Быстрый старт
|
Быстрый старт
|
||||||
********************
|
=============
|
||||||
|
|
||||||
|
В этом руководстве мы рассмотрим два примера создания CLI-приложения с помощью Argenta:
|
||||||
|
|
||||||
|
* **Простой пример**: Быстрое знакомство с основными компонентами, такими как `App`, `Command` и `Router`.
|
||||||
|
* **Более сложный пример**: Полнофункциональное приложение «Менеджер задач» с внедрением зависимостей и бизнес-логикой.
|
||||||
|
|
||||||
|
Простой пример
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Этот пример демонстрирует абсолютный минимум, необходимый для создания и запуска приложения. Вы можете скопировать этот код, запустить его и сразу увидеть результат.
|
||||||
|
|
||||||
|
.. literalinclude:: ../code_snippets/quickstart/simple_app.py
|
||||||
|
:language: python
|
||||||
|
:linenos:
|
||||||
|
|
||||||
|
**Результат**
|
||||||
|
|
||||||
|
.. image:: https://i.ibb.co/JwK9Vv4j/2025-11-03-135118.png
|
||||||
|
:alt: Simple App Example
|
||||||
|
|
||||||
|
Более сложный пример: Менеджер задач
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
В этом руководстве мы создадим простое, но полнофункциональное CLI-приложение «Менеджер задач», которое продемонстрирует ключевые возможности Argenta.
|
В этом руководстве мы создадим простое, но полнофункциональное CLI-приложение «Менеджер задач», которое продемонстрирует ключевые возможности Argenta.
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
.. image:: https://i.ibb.co/YFGRY2c0/2025-11-03-121650.png
|
.. image:: https://i.ibb.co/YFGRY2c0/2025-11-03-121650.png
|
||||||
:alt: Пример приложения с статической разделительной линией
|
:alt: Пример приложения с статической разделительной линией
|
||||||
|
|
||||||
|
В этом примере разделительная линия имеет фиксированную длину (по умолчанию 25 символов).
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Побочные эффекты перехвата ``stdout``
|
Побочные эффекты перехвата ``stdout``
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ from argenta.command.models import Command as Command
|
|||||||
from argenta.orchestrator.entity import Orchestrator as Orchestrator
|
from argenta.orchestrator.entity import Orchestrator as Orchestrator
|
||||||
from argenta.response.entity import Response as Response
|
from argenta.response.entity import Response as Response
|
||||||
from argenta.router.entity import Router as Router
|
from argenta.router.entity import Router as Router
|
||||||
|
from argenta.data_bridge.entity import DataBridge as DataBridge
|
||||||
|
|||||||
Reference in New Issue
Block a user