Технологический стек:
python 3.13
poetry 2.2.1
fastapi 0.120.3
uvicorn 0.38.0
Pre-commit-hooks использовать необязательно (достаточно просто не выполнять в терминале pre-commit install)
Pre-commit-hooks:
trailing-whitespace
end-of-file-fixer
check-yaml
check-added-large-files
flake8 7.1.1
isort 5.13.2
black 24.10.0
poetry-check
poetry-lock
Весь код логики в /src/app.py
Фейковая функция process_task, которая имитируем какое-то время исполнения бизнес-задачи (по умолчанию sleep - 20 сек)
Эндпоинты:
/create_task - принимает какое-либо сообщение, создает задачу и возвращает uuid задачи отправленной в фон
/get_task_result/{task_id} - проверяет статус задачи task in progress или ready. Если статус задачи ready,
возвращает доп. поле result с результатом выполнения (в данном примере в качестве результата возвращается
"message": "[первоначальное сообщение]" )
docker compose up --buildСоздаем вирутальное и активируем окружение
# Windows
python -m venv venv
.\venv\Script\activate
# Linux/MacOS
python3 -m venv venv
source /venv/bin/activateУстанавливаем poetry
pip install poetry==2.2.1Устанавливаем зависимости
poetry installЗапускаем приложение
python -m src.app