As a convenience. It isn't used by the library itself, but it is used by the test suite. It will also come in handy for users of the library still on Python 3.6.
Signed-off-by: John Snow <js...@redhat.com> Message-id: 20210915162955.333025-23-js...@redhat.com Signed-off-by: John Snow <js...@redhat.com> --- python/qemu/aqmp/util.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/python/qemu/aqmp/util.py b/python/qemu/aqmp/util.py index 52a15321889..eaa5fc7d5f9 100644 --- a/python/qemu/aqmp/util.py +++ b/python/qemu/aqmp/util.py @@ -147,6 +147,25 @@ async def wait_closed(writer: asyncio.StreamWriter) -> None: await asyncio.sleep(0) +def asyncio_run(coro: Coroutine[Any, Any, T], *, debug: bool = False) -> T: + """ + Python 3.6-compatible `asyncio.run` wrapper. + + :param coro: A coroutine to execute now. + :return: The return value from the coroutine. + """ + if sys.version_info >= (3, 7): + return asyncio.run(coro, debug=debug) + + # Python 3.6 + loop = asyncio.get_event_loop() + loop.set_debug(debug) + ret = loop.run_until_complete(coro) + loop.close() + + return ret + + # ---------------------------- # Section: Logging & Debugging # ---------------------------- -- 2.31.1