¿Cómo puedo empaquetar una corutina como función normal en el bucle de eventos?

estoy usandoasyncio para un marco de red.

En el siguiente código (low_level es nuestra función de bajo nivel,main el bloque es nuestra entrada al programa,user_func es una función definida por el usuario):

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)

Quiero envolver ellow_level como función normal en lugar decoroutine(paracompatibility etc.), perolow_level está en el bucle de eventos. ¿Cómo puede envolverlo como una función normal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta