From 3078211fb6bb41e327d3ffc1f747dec47fa0f07a Mon Sep 17 00:00:00 2001 From: xtsea <90479255+xtsea@users.noreply.github.com> Date: Sat, 23 Dec 2023 22:26:42 +0700 Subject: [PATCH] Create to_async.py --- RyuzakiLib/to_async.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 RyuzakiLib/to_async.py diff --git a/RyuzakiLib/to_async.py b/RyuzakiLib/to_async.py new file mode 100644 index 00000000..4907bef1 --- /dev/null +++ b/RyuzakiLib/to_async.py @@ -0,0 +1,22 @@ +import asyncio +from asyncio import AbstractEventLoop +from typing import Any +from typing import Callable + +class ToAsync: + def __init__(self, function: Callable, *args): + self._loop: AbstractEventLoop = asyncio.get_event_loop() + self._function: Callable = function + self._function_args: tuple = args + + async def _run(self): + result: Any = await self._loop.run_in_executor( + None, + self._function, + *self._function_args, + ) + + return result + + def __await__(self): + return self._run().__await__()