[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 19/20] python/aqmp: add asyncio_run compatibility wrapper
From: |
John Snow |
Subject: |
[PATCH 19/20] python/aqmp: add asyncio_run compatibility wrapper |
Date: |
Thu, 1 Jul 2021 00:13:12 -0400 |
Merely as a convenience for users stuck on Python 3.6. It isn't used by
the library itself.
Signed-off-by: John Snow <jsnow@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
- [PATCH 10/20] python/aqmp: add _cb_inbound and _cb_inbound logging hooks, (continued)
- [PATCH 10/20] python/aqmp: add _cb_inbound and _cb_inbound logging hooks, John Snow, 2021/07/01
- [PATCH 13/20] python/aqmp: add well-known QMP object models, John Snow, 2021/07/01
- [PATCH 12/20] python/aqmp: add QMP Message format, John Snow, 2021/07/01
- [PATCH 16/20] python/aqmp: Add message routing to QMP protocol, John Snow, 2021/07/01
- [PATCH 17/20] python/aqmp: add execute() interfaces, John Snow, 2021/07/01
- [PATCH 15/20] python/aqmp: add QMP protocol support, John Snow, 2021/07/01
- [PATCH 14/20] python/aqmp: add QMP event support, John Snow, 2021/07/01
- [PATCH 18/20] python/aqmp: add _raw() execution interface, John Snow, 2021/07/01
- [PATCH 19/20] python/aqmp: add asyncio_run compatibility wrapper,
John Snow <=
- [PATCH 20/20] python/aqmp: add scary message, John Snow, 2021/07/01
- Re: [PATCH 00/20] python: introduce Asynchronous QMP package, Stefan Hajnoczi, 2021/07/05