Сценарий, который я обновляю, использует asyncio.get_event_loop(), который устарел с версии Python 3.12.
В документации Asyncio рекомендуется использовать asyncio.get_running_loop(), который считается более стабильным, поскольку его вывод проще и предсказуемее. Однако get_running_loop() требует, чтобы цикл был запущен, и его можно вызывать только из сопрограммы или обратного вызова, что несовместимо с моей структурой функций.
Есть ли другая замена asyncio для получения цикла событий?






Обычно достаточно просто вызвать asyncio.run — чтобы запустить асинхронную часть программы в текущем потоке.
Если перед вызовом run нужна ссылка на цикл (например, для создания фьючерсов и задач из синхронного кода), можно вызвать asyncio.new_event_loop(), с последующим loop.run_until_complete() - в том же самом шаблон, который использовался с .get_event_loop() до появления asyncio.run.
TL;DR: asyncio.new_event_loop() — это функция, которую вы ищете.
Если это не очевидно: new_event_loop(), вероятно, следует вызывать только один раз, а результат где-то сохранять и использовать повторно. Если сценарий вызывает get_event_loop() в нескольких местах, почти наверняка невозможно заменить их все на new_event_loop().
Вероятно, поможет предоставление более подробной информации о том, что ваша функция делает с циклом событий, полученным с помощью
get_event_loop().