This commit is contained in:
2025-11-03 14:17:12 +03:00
parent 02b02793d0
commit ad8c3af532
10 changed files with 82 additions and 15 deletions
+1 -2
View File
@@ -1,5 +1,4 @@
from argenta.command import Flags
from argenta.command.flag.defaults import PredefinedFlags
from argenta.command import Flags, PredefinedFlags
# Использование предопределенных флагов при создании команды
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 -2
View File
@@ -1,6 +1,5 @@
from argenta import Router, Response, Command
from argenta import Router, Response, Command, DataBridge
from argenta.command import Flag
from argenta.data_bridge import DataBridge
from argenta.di import FromDishka
# 1. Создаём роутер
+15 -3
View File
@@ -148,15 +148,27 @@ PredefinedMessages
`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых к использованию строковых сообщений. Они отформатированы с использованием синтаксиса `rich` и предназначены для вывода стандартной информации, такой как подсказки по использованию.
Вы можете импортировать и использовать их напрямую в своих обработчиках.
Реккомендуется использовать их при старте приложения.
.. code-block:: python
:linenos:
from argenta import App, Orchestrator
from argenta.app import PredefinedMessages
def my_handler(response):
print(PredefinedMessages.USAGE)
app: App = App()
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
+3 -3
View File
@@ -10,10 +10,10 @@ DataBridge
.. code-block:: python
:linenos:
from dishka.integrations.fastapi import FromDishka
from argenta.bridge import DataBridge
from argenta.di import FromDishka
from argenta import DataBridge, Response
def my_handler(data_bridge: FromDishka[DataBridge]):
def my_handler(response: Response, data_bridge: FromDishka[DataBridge]):
# ... ваш код
**Практический пример: Аутентификация**
+1 -3
View File
@@ -166,10 +166,8 @@ PredefinedFlags
-----
Доступные флаги
~~~~~~~~~~~~~~~
Информационные флаги
~~~~~~~~~~~~~~~~~~~~
.. py:attribute:: PredefinedFlags.HELP
+1 -1
View File
@@ -49,7 +49,7 @@
Обеспечение соблюдения
----------------------
О случаях оскорбительного, преследовательского или иного неприемлемого поведения можно сообщить команде проекта по адресу [ВСТАВЬТЕ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ]. Все жалобы будут рассмотрены и расследованы оперативно и справедливо.
О случаях оскорбительного, преследовательского или иного неприемлемого поведения можно сообщить команде проекта по адресу kolo.is.main@gmail.com. Все жалобы будут рассмотрены и расследованы оперативно и справедливо.
Команда проекта обязуется уважать частную жизнь и безопасность заявителя.
+23 -1
View File
@@ -1,7 +1,29 @@
.. _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.
+2
View File
@@ -24,6 +24,8 @@
.. image:: https://i.ibb.co/YFGRY2c0/2025-11-03-121650.png
:alt: Пример приложения с статической разделительной линией
В этом примере разделительная линия имеет фиксированную длину (по умолчанию 25 символов).
-----
Побочные эффекты перехвата ``stdout``
+1
View File
@@ -3,3 +3,4 @@ from argenta.command.models import Command as Command
from argenta.orchestrator.entity import Orchestrator as Orchestrator
from argenta.response.entity import Response as Response
from argenta.router.entity import Router as Router
from argenta.data_bridge.entity import DataBridge as DataBridge