[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 22/25] python/aqmp: add asyncio_run compatibility wrapper
From: |
John Snow |
Subject: |
[PATCH v3 22/25] python/aqmp: add asyncio_run compatibility wrapper |
Date: |
Tue, 3 Aug 2021 14:29:38 -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 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
- Re: [PATCH v3 12/25] python/aqmp: add AsyncProtocol._readline() method, (continued)
- [PATCH v3 13/25] python/aqmp: add QMP Message format, John Snow, 2021/08/03
- [PATCH v3 15/25] python/aqmp: add QMP event support, John Snow, 2021/08/03
- [PATCH v3 17/25] python/aqmp: add QMP protocol support, John Snow, 2021/08/03
- [PATCH v3 16/25] python/pylint: disable too-many-function-args, John Snow, 2021/08/03
- [PATCH v3 18/25] python/pylint: disable no-member check, John Snow, 2021/08/03
- [PATCH v3 19/25] python/aqmp: Add message routing to QMP protocol, John Snow, 2021/08/03
- [PATCH v3 20/25] python/aqmp: add execute() interfaces, John Snow, 2021/08/03
- [PATCH v3 22/25] python/aqmp: add asyncio_run compatibility wrapper,
John Snow <=
- [PATCH v3 21/25] python/aqmp: add _raw() execution interface, John Snow, 2021/08/03
- [PATCH v3 24/25] python: bump avocado to v90.0, John Snow, 2021/08/03
- [PATCH v3 23/25] python/aqmp: add scary message, John Snow, 2021/08/03
- [PATCH v3 25/25] python/aqmp: add AsyncProtocol unit tests, John Snow, 2021/08/03
- Re: [PATCH v3 00/25] python: introduce Asynchronous QMP package, John Snow, 2021/08/16