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.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,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. Создаём роутер
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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]):
|
||||
# ... ваш код
|
||||
|
||||
**Практический пример: Аутентификация**
|
||||
|
||||
@@ -166,10 +166,8 @@ PredefinedFlags
|
||||
|
||||
-----
|
||||
|
||||
Доступные флаги
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Информационные флаги
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
.. py:attribute:: PredefinedFlags.HELP
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
Обеспечение соблюдения
|
||||
----------------------
|
||||
|
||||
О случаях оскорбительного, преследовательского или иного неприемлемого поведения можно сообщить команде проекта по адресу [ВСТАВЬТЕ АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ]. Все жалобы будут рассмотрены и расследованы оперативно и справедливо.
|
||||
О случаях оскорбительного, преследовательского или иного неприемлемого поведения можно сообщить команде проекта по адресу kolo.is.main@gmail.com. Все жалобы будут рассмотрены и расследованы оперативно и справедливо.
|
||||
|
||||
Команда проекта обязуется уважать частную жизнь и безопасность заявителя.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
.. image:: https://i.ibb.co/YFGRY2c0/2025-11-03-121650.png
|
||||
:alt: Пример приложения с статической разделительной линией
|
||||
|
||||
В этом примере разделительная линия имеет фиксированную длину (по умолчанию 25 символов).
|
||||
|
||||
-----
|
||||
|
||||
Побочные эффекты перехвата ``stdout``
|
||||
|
||||
Reference in New Issue
Block a user