Update documentation and code snippets

This commit is contained in:
2025-12-04 17:47:20 +03:00
parent 9d420af0c5
commit eeb5a752ec
2 changed files with 16 additions and 30 deletions
+15 -29
View File
@@ -11,25 +11,7 @@ Argenta — это **"Самый простой"**, **"Самый модульн
![preview](https://i.ibb.co/fzWcfgFq/2025-12-04-173045.png) ![preview](https://i.ibb.co/fzWcfgFq/2025-12-04-173045.png)
```python **Argenta** позволяет создавать интерактивные CLI-приложения невероятно легко. Не нужно вручную парсить сложные структуры команд или управлять переходами состояний — просто используйте роутеры и команды!
>>> from argenta import Router, Command, Response
>>>
>>> router = Router()
>>>
>>> @router.command(Command("hello"))
... def handler(response: Response):
... print("Привет, мир!")
>>>
>>> from argenta import App, Orchestrator
>>>
>>> app = App()
>>> orchestrator = Orchestrator()
>>>
>>> app.include_router(router)
>>> orchestrator.start_polling(app)
```
Argenta позволяет создавать интерактивные CLI-приложения невероятно легко. Не нужно вручную парсить сложные структуры команд или управлять переходами состояний — просто используйте роутеры и команды!
## ✨ Установка Argenta ## ✨ Установка Argenta
@@ -52,12 +34,12 @@ Argenta официально поддерживает Python 3.12+.
Argenta готова к требованиям создания масштабируемых, надежных и поддерживаемых CLI-приложений. Argenta готова к требованиям создания масштабируемых, надежных и поддерживаемых CLI-приложений.
- **Интерактивные сессии**: В отличие от традиционных CLI-инструментов, ``Argenta`` создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение. - **Интерактивные сессии**: В отличие от традиционных CLI-инструментов, ``Argenta`` создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение.
- **Декларативный синтаксис**: Команды и их обработчики объявляются с помощью простых декораторов, что делает код чистым и интуитивно понятным. - **Декларативный синтаксис**: Команды и их обработчики объявляются с помощью простых декораторов, что делает код интуитивно понятным и позволяет сосредоточиться на том, "что" вы хотите сделать, а не "как".
- **Нативный DI**: Благодаря интеграции с `dishka <https://dishka.readthedocs.io/en/stable/>`_, вы можете легко внедрять зависимости прямо в обработчики команд, что упрощает их тестирование и переиспользование. - **Нативный DI**: Благодаря интеграции с `dishka <https://dishka.readthedocs.io/en/stable/>`_, вы можете легко внедрять зависимости прямо в обработчики команд, что упрощает их тестирование, позволяет избежать мутабельных глобалов и многое другое.
- **Автоматическая валидация и парсинг**: Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их арсинг, валидацию и преобразование типов. - **Автоматическая валидация и парсинг**: Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их парсинг, валидацию и преобразование типов.
- **Гибкая настройка**: Вы можете легко кастомизировать системные сообщения, форматирование вывода и т.д. - **Гибкая настройка**: Вы можете легко кастомизировать системные сообщения, форматирование вывода, ссоздавать кастомные обработчики нестандартного поведения и т.д.
Нужно что-то еще? Создайте **issue**, мы слушаем. Нужно что-то еще? Создайте **issue**, мы открыты к предложениям.
## 📝 Зачем мы это создали? ## 📝 Зачем мы это создали?
@@ -73,7 +55,8 @@ Argenta готова к требованиям создания масштаби
```python ```python
# routers.py # routers.py
from argenta import Router, Command, Response from argenta import Router, Response
from argenta.command import Flag, Command
router = Router() router = Router()
@@ -82,11 +65,14 @@ def handler(response: Response):
"""Простая команда hello world""" """Простая команда hello world"""
print("Привет, мир!") print("Привет, мир!")
@router.command(Command("greet")) @router.command(Command("greet", flags=Flag('name')))
def greet_handler(response: Response): def greet_handler(response: Response):
"""Поприветствовать пользователя по имени""" """Поприветствовать пользователя по имени"""
name = response.args.get("name", "незнакомец") name_flag = response.input_flags.get_flag_by_name('name')
print(f"Привет, {name}!") if name_flag:
print(f"Привет, {name_flag.input_value}!")
else:
print("Привет, Незнакомец!")
``` ```
```python ```python
@@ -108,7 +94,7 @@ if __name__ == '__main__':
main() main()
``` ```
Вот и всё! Теперь у вас есть полностью функциональное интерактивное CLI-приложение с модульной маршрутизацией команд. Вот и всё! Теперь у вас есть полностью функциональное интерактивное CLI-приложение.
## 📚 Документация ## 📚 Документация
+1 -1
View File
@@ -3,7 +3,7 @@ name = "argenta"
version = "1.1.2" version = "1.1.2"
description = "Python library for building modular CLI applications" description = "Python library for building modular CLI applications"
authors = [{ name = "kolo", email = "kolo.is.main@gmail.com" }] authors = [{ name = "kolo", email = "kolo.is.main@gmail.com" }]
requires-python = ">=3.11" requires-python = ">=3.12"
readme = "README.md" readme = "README.md"
license = { text = "MIT" } license = { text = "MIT" }
dependencies = [ dependencies = [