Merely as a convenience for users stuck on Python 3.6. It isn't used by the library itself.
Signed-off-by: John Snow <js...@redhat.com> --- python/qemu/aqmp/util.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/python/qemu/aqmp/util.py b/python/qemu/aqmp/util.py index 2311be5893..356323ac70 100644 --- a/python/qemu/aqmp/util.py +++ b/python/qemu/aqmp/util.py @@ -109,6 +109,26 @@ async def wait_task_done(task: Optional['asyncio.Future[Any]']) -> None: break +def asyncio_run(coro: Coroutine[Any, Any, T]) -> T: + """ + Python 3.6-compatible `asyncio.run` wrapper. + + :param coro: A coroutine to execute now. + :return: The return value from the coroutine. + """ + # Python 3.7+ + if hasattr(asyncio, 'run'): + # pylint: disable=no-member + return asyncio.run(coro) # type: ignore + + # Python 3.6 + loop = asyncio.get_event_loop() + ret = loop.run_until_complete(coro) + loop.close() + + return ret + + def pretty_traceback(prefix: str = " | ") -> str: """ Formats the current traceback, indented to provide visual distinction. -- 2.31.1