From 02683b8c3736b87f7af6ab86d4e1f56932309b0e Mon Sep 17 00:00:00 2001 From: LORES <61621244+loRes228@users.noreply.github.com> Date: Wed, 2 Apr 2025 23:26:43 +0300 Subject: [PATCH] misc: simplify running non-async callback using asyncio.to_thread (#1661) * refactor: simplify running non-async callback using asyncio.to_thread * add changes --- CHANGES/1661.misc.rst | 1 + aiogram/dispatcher/event/handler.py | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) create mode 100644 CHANGES/1661.misc.rst diff --git a/CHANGES/1661.misc.rst b/CHANGES/1661.misc.rst new file mode 100644 index 00000000..b20cbc82 --- /dev/null +++ b/CHANGES/1661.misc.rst @@ -0,0 +1 @@ +Replaced ```loop.run_in_executor``` with ```asyncio.to_thread``` for improved readability and consistency. diff --git a/aiogram/dispatcher/event/handler.py b/aiogram/dispatcher/event/handler.py index 8c283dd2..b95cc962 100644 --- a/aiogram/dispatcher/event/handler.py +++ b/aiogram/dispatcher/event/handler.py @@ -41,11 +41,7 @@ class CallableObject: wrapped = partial(self.callback, *args, **self._prepare_kwargs(kwargs)) if self.awaitable: return await wrapped() - - loop = asyncio.get_event_loop() - context = contextvars.copy_context() - wrapped = partial(context.run, wrapped) - return await loop.run_in_executor(None, wrapped) + return await asyncio.to_thread(wrapped) @dataclass