Запуск асинхронных функций в синхронном контексте, как оказалось - довольно легко реализуется
Полезным может быть, если в синхронном проекте потребуется запустить асинхронную логику.
А вот дженерики - отдельная тема!
В конкретном примере, после выполнения асинхронной логики - мы получим переменную, но IDE, будет определять ее как
UnknownЧто помешает нормальной типизации и сделает работу менее удобно, и может привести к ошибкам в коде.
Так что я раскопал решение, которое дает возможность использовать дженерики в Python.
Таким образом, в IDE, тип, возвращаемый из
sync_await - будет тем-же, что и у асинхронной функции, коррутину которой мы передаем в качестве аргумента.Пришел к этому не просто так, а в процессе жесткого рефакторинга текущего проекта.
Постараюсь отказаться от
sync_await, тк проект асинхронный, и это по идее антипаттерн (наверное... книжку так и не почитал)Но опыт, однозначно положительный!
🖼️Gist
