mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
Update documentation and code snippets
This commit is contained in:
+15
-29
@@ -11,25 +11,7 @@ Argenta — это **"Самый простой"**, **"Самый модульн
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
```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
@@ -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 = [
|
||||||
|
|||||||
Reference in New Issue
Block a user