.. _root_quickstart: Быстрый старт ============= В этом руководстве мы рассмотрим два примера создания CLI-приложения с помощью Argenta: * **Простой пример**: минимальное приложение для быстрого знакомства с основными компонентами. * **Более сложный пример**: полнофункциональное приложение «Менеджер задач» с внедрением зависимостей и бизнес-логикой. Простой пример --------------- **Установка** .. code-block:: shell pip install argenta Этот пример демонстрирует абсолютный минимум, необходимый для создания и запуска приложения. Вы можете скопировать этот код, запустить его и сразу увидеть результат. .. literalinclude:: ../code_snippets/quickstart/simple_app.py :language: python :linenos: **Запуск** Сохраните код в файл (например, ``main.py``) и запустите: .. code-block:: shell python main.py **Результат** .. image:: https://i.ibb.co/35q24Bh8/image.png :alt: Simple App Example ----- Промежуточный пример: Калькулятор с флагами -------------------------------------------- Прежде чем перейти к сложному примеру с DI, рассмотрим промежуточный вариант — калькулятор, который использует флаги для управления поведением. .. literalinclude:: ../code_snippets/quickstart/calculator_app.py :language: python :linenos: **Запуск:** Сохраните код в файл ``calculator.py`` и запустите: .. code-block:: shell python calculator.py **Использование:** .. code-block:: shell calc --a 10 --b 5 --operation add calc --a 10 --b 5 --operation mul Этот пример показывает, как работать с флагами без использования DI. Теперь перейдём к более сложному примеру. ----- Сложный пример: Менеджер задач с DI ------------------------------------ В этом руководстве мы создадим полнофункциональное CLI-приложение «Менеджер задач», которое продемонстрирует работу с внедрением зависимостей. 1. **Установка** .. code-block:: shell pip install argenta 2. **Определение моделей данных и репозитория** Сначала определим модели данных для задачи и репозиторий для их хранения. .. literalinclude:: ../code_snippets/quickstart/task_manager/repository.py :language: python :linenos: 3. **Создание провайдера для DI** Чтобы Argenta могла внедрять ``TaskRepository`` в наши обработчики, мы создадим провайдер для ``dishka``. .. literalinclude:: ../code_snippets/quickstart/task_manager/provider.py :language: python :linenos: 4. **Создание обработчиков команд** Теперь создадим обработчики для команд ``add-task`` и ``list-tasks``. Обратите внимание, как мы используем флаги и внедряем ``TaskRepository``. .. literalinclude:: ../code_snippets/quickstart/task_manager/handlers.py :language: python :linenos: 5. **Сборка и запуск приложения** Наконец, соберем все вместе: создадим экземпляр ``App``, подключим роутер и провайдер, а затем запустим приложение. .. literalinclude:: ../code_snippets/quickstart/task_manager/main.py :language: python :linenos: 6. **Результат** Теперь вы можете запустить ``main.py`` и взаимодействовать с вашим новым CLI-приложением. .. image:: https://i.ibb.co/bgsCLZhP/image.png :alt: Task Manager Example