From 41e2d3c6370e2e5101245d9884094e314cb92182 Mon Sep 17 00:00:00 2001 From: Josh Date: Thu, 29 Jul 2021 09:58:01 +1000 Subject: [PATCH] Allow callables in abc.Connectable.Connect --- discord/abc.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/discord/abc.py b/discord/abc.py index ffaa5feb2..895083fd3 100644 --- a/discord/abc.py +++ b/discord/abc.py @@ -28,6 +28,7 @@ import copy import asyncio from typing import ( Any, + Callable, Dict, List, Mapping, @@ -68,6 +69,7 @@ T = TypeVar('T', bound=VoiceProtocol) if TYPE_CHECKING: from datetime import datetime + from .client import Client from .user import ClientUser from .asset import Asset from .state import ConnectionState @@ -1611,7 +1613,13 @@ class Connectable(Protocol): def _get_voice_state_pair(self) -> Tuple[int, int]: raise NotImplementedError - async def connect(self, *, timeout: float = 60.0, reconnect: bool = True, cls: Type[T] = VoiceClient) -> T: + async def connect( + self, + *, + timeout: float = 60.0, + reconnect: bool = True, + cls: Callable[[Client, Connectable], T] = VoiceClient, + ) -> T: """|coro| Connects to voice and creates a :class:`VoiceClient` to establish