diff --git a/README.ru.md b/README.ru.md index 9c39465..3e5fb35 100644 --- a/README.ru.md +++ b/README.ru.md @@ -11,25 +11,7 @@ Argenta — это **"Самый простой"**, **"Самый модульн ![preview](https://i.ibb.co/fzWcfgFq/2025-12-04-173045.png) -```python ->>> 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** позволяет создавать интерактивные CLI-приложения невероятно легко. Не нужно вручную парсить сложные структуры команд или управлять переходами состояний — просто используйте роутеры и команды! ## ✨ Установка Argenta @@ -52,12 +34,12 @@ Argenta официально поддерживает Python 3.12+. Argenta готова к требованиям создания масштабируемых, надежных и поддерживаемых CLI-приложений. - **Интерактивные сессии**: В отличие от традиционных CLI-инструментов, ``Argenta`` создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение. -- **Декларативный синтаксис**: Команды и их обработчики объявляются с помощью простых декораторов, что делает код чистым и интуитивно понятным. -- **Нативный DI**: Благодаря интеграции с `dishka `_, вы можете легко внедрять зависимости прямо в обработчики команд, что упрощает их тестирование и переиспользование. -- **Автоматическая валидация и парсинг**: Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их арсинг, валидацию и преобразование типов. -- **Гибкая настройка**: Вы можете легко кастомизировать системные сообщения, форматирование вывода и т.д. +- **Декларативный синтаксис**: Команды и их обработчики объявляются с помощью простых декораторов, что делает код интуитивно понятным и позволяет сосредоточиться на том, "что" вы хотите сделать, а не "как". +- **Нативный DI**: Благодаря интеграции с `dishka `_, вы можете легко внедрять зависимости прямо в обработчики команд, что упрощает их тестирование, позволяет избежать мутабельных глобалов и многое другое. +- **Автоматическая валидация и парсинг**: Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их парсинг, валидацию и преобразование типов. +- **Гибкая настройка**: Вы можете легко кастомизировать системные сообщения, форматирование вывода, ссоздавать кастомные обработчики нестандартного поведения и т.д. -Нужно что-то еще? Создайте **issue**, мы слушаем. +Нужно что-то еще? Создайте **issue**, мы открыты к предложениям. ## 📝 Зачем мы это создали? @@ -73,7 +55,8 @@ Argenta готова к требованиям создания масштаби ```python # routers.py -from argenta import Router, Command, Response +from argenta import Router, Response +from argenta.command import Flag, Command router = Router() @@ -82,11 +65,14 @@ def handler(response: Response): """Простая команда hello world""" print("Привет, мир!") -@router.command(Command("greet")) +@router.command(Command("greet", flags=Flag('name'))) def greet_handler(response: Response): """Поприветствовать пользователя по имени""" - name = response.args.get("name", "незнакомец") - print(f"Привет, {name}!") + name_flag = response.input_flags.get_flag_by_name('name') + if name_flag: + print(f"Привет, {name_flag.input_value}!") + else: + print("Привет, Незнакомец!") ``` ```python @@ -108,7 +94,7 @@ if __name__ == '__main__': main() ``` -Вот и всё! Теперь у вас есть полностью функциональное интерактивное CLI-приложение с модульной маршрутизацией команд. +Вот и всё! Теперь у вас есть полностью функциональное интерактивное CLI-приложение. ## 📚 Документация diff --git a/pyproject.toml b/pyproject.toml index 84906e8..be694df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "argenta" version = "1.1.2" description = "Python library for building modular CLI applications" authors = [{ name = "kolo", email = "kolo.is.main@gmail.com" }] -requires-python = ">=3.11" +requires-python = ">=3.12" readme = "README.md" license = { text = "MIT" } dependencies = [