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 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 -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.command import Flag
from argenta.data_bridge import DataBridge
from argenta.di import FromDishka from argenta.di import FromDishka
# 1. Создаём роутер # 1. Создаём роутер
+15 -3
View File
@@ -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
+3 -3
View File
@@ -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]):
# ... ваш код # ... ваш код
**Практический пример: Аутентификация** **Практический пример: Аутентификация**
+1 -3
View File
@@ -166,10 +166,8 @@ PredefinedFlags
----- -----
Доступные флаги
~~~~~~~~~~~~~~~
Информационные флаги Информационные флаги
~~~~~~~~~~~~~~~~~~~~
.. py:attribute:: PredefinedFlags.HELP .. 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: .. _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.
+2
View File
@@ -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``
+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.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