====== Python async ====== ===== Д/З ===== ==== Reading assignment (прочитать и понять) ==== * https://youtu.be/oAkLSJNr5zY Python Tutorial: AsyncIO - Complete Guide to Asynchronous Programming with Animations * [[https://docs.python.org/3/library/asyncio.html|asyncio — Asynchronous I/O]] * [[https://github.com/MagicStack/asyncpg|asyncpg]] * [[https://docs.aiohttp.org|aiohttp]] * [[https://www.python-httpx.org/|httpx]] * [[https://docs.python.org/3/library/logging.html|logging — Logging facility for Python]] * [[https://github.com/olegsklyarov/unn-pizza-bot/blob/master/LECTURE_11_ASYNC_MIGRATION.md|План миграции Pizza Bot]] ==== Практика (для зачета) ==== - Выполнить упражнение по сравнению sync VS. async версий http и SQL запросов. Пример кода тут https://github.com/olegsklyarov/unn-sync-async-demo - Добавить логирование времени выполнения всех HTTP и SQL запросов в pizza bot. - Перевести pizza bot на асинхронный вариант: весь код бота должен работать в Event loop, запускаться через ''asyncio.run()''. Добавить везде где необходимо async / await. Все HTTP и SQL запрос должны быть асинхронными, и использованием aiohttp и asyncpg соответственно. - Перевести pytest тесты на асинхронную версию - Залейте в docker hub новую асинхронную версию ===Процесс сдачи=== - (студент): напишите в ТГ [[https://t.me/olegsklyarov|преподавателю]] **одно** сообщение, содержащее текст: - ''Для сдачи Д/з Python async'' - Ссылка на гит с исходным кодом бота - Публичная ссылка на обновленный образ бота в docker hub (пример https://hub.docker.com/r/olegsklyarov/unn_pizza_bot) - (преподаватель) проверяет наличие зеленой галочки на гитхабе, делает код ревью, при необходимости задает дополнительные вопросы. - (преподаватель) отправляет с ТГ личку студенту сообщение "ФИО ✅ 🔟+1️⃣" - (студент) заходит [[chat-bots:Таблица успеваемости|на страницу успеваемости]] и проверяет корректность своей успеваемости.