Я использую asyncio для сетевой инфраструктуры.
В приведенном ниже коде (low_level
- наша низкоуровневая функция, main
- это наша программа, user_func
- пользовательская функция):
import asyncio
loop = asyncio.get_event_loop()
""":type :asyncio.AbstractEventLoop"""
def low_level():
yield from asyncio.sleep(2)
def user_func():
yield from low_level()
if __name__ == '__main__':
co = user_func()
loop.run_until_complete(co)
Я хочу обернуть low_level
как нормальную функцию, а не coroutine
(для compatibility
и т.д.), но low_level
находится в цикле событий. Как можно обернуть его как нормальную функцию?