[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 22/27] python/aqmp: add asyncio_run compatibility wrapper
From: |
John Snow |
Subject: |
[PATCH v4 22/27] python/aqmp: add asyncio_run compatibility wrapper |
Date: |
Wed, 15 Sep 2021 12:29:50 -0400 |
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 <jsnow@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 52a1532188..eaa5fc7d5f 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
- [PATCH v4 13/27] python/aqmp: add QMP Message format, (continued)
- [PATCH v4 13/27] python/aqmp: add QMP Message format, John Snow, 2021/09/15
- [PATCH v4 14/27] python/aqmp: add well-known QMP object models, John Snow, 2021/09/15
- [PATCH v4 16/27] python/pylint: disable too-many-function-args, John Snow, 2021/09/15
- [PATCH v4 17/27] python/aqmp: add QMP protocol support, John Snow, 2021/09/15
- [PATCH v4 19/27] python/aqmp: Add message routing to QMP protocol, John Snow, 2021/09/15
- [PATCH v4 20/27] python/aqmp: add execute() interfaces, John Snow, 2021/09/15
- [PATCH v4 15/27] python/aqmp: add QMP event support, John Snow, 2021/09/15
- [PATCH v4 18/27] python/pylint: disable no-member check, John Snow, 2021/09/15
- [PATCH v4 21/27] python/aqmp: add _raw() execution interface, John Snow, 2021/09/15
- [PATCH v4 23/27] python/aqmp: add scary message, John Snow, 2021/09/15
- [PATCH v4 22/27] python/aqmp: add asyncio_run compatibility wrapper,
John Snow <=
- [PATCH v4 26/27] python/aqmp: add LineProtocol tests, John Snow, 2021/09/15
- [PATCH v4 27/27] python/aqmp: Add Coverage.py support, John Snow, 2021/09/15
- [PATCH v4 24/27] python: bump avocado to v90.0, John Snow, 2021/09/15
- [PATCH v4 25/27] python/aqmp: add AsyncProtocol unit tests, John Snow, 2021/09/15
- Re: [PATCH v4 00/27] python: introduce Asynchronous QMP package, John Snow, 2021/09/20