From 999c22f0c53541d7f40582b93a8f0ac1be743aed Mon Sep 17 00:00:00 2001 From: Alexander Date: Sat, 26 Nov 2022 08:50:19 +0100 Subject: [PATCH] feat: Add possibility to start bot via async context manager --- discord/client.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/discord/client.py b/discord/client.py index 0be48554f7..1c2982673c 100644 --- a/discord/client.py +++ b/discord/client.py @@ -251,6 +251,20 @@ def __init__( VoiceClient.warn_nacl = False _log.warning("PyNaCl is not installed, voice will NOT be supported") + async def __aenter__(self) -> Client: + loop = asyncio.get_running_loop() + self.loop = loop + self.http.loop = loop + self._connection.loop = loop + + self._ready = asyncio.Event() + + return self + + async def __aexit__(self) -> None: + if not self.is_closed(): + await self.close() + # internals def _get_websocket(