Allow callables in abc.Connectable.Connect

This commit is contained in:
Josh
2021-07-29 09:58:01 +10:00
committed by GitHub
parent 154c90ef59
commit 41e2d3c637

View File

@ -28,6 +28,7 @@ import copy
import asyncio import asyncio
from typing import ( from typing import (
Any, Any,
Callable,
Dict, Dict,
List, List,
Mapping, Mapping,
@ -68,6 +69,7 @@ T = TypeVar('T', bound=VoiceProtocol)
if TYPE_CHECKING: if TYPE_CHECKING:
from datetime import datetime from datetime import datetime
from .client import Client
from .user import ClientUser from .user import ClientUser
from .asset import Asset from .asset import Asset
from .state import ConnectionState from .state import ConnectionState
@ -1611,7 +1613,13 @@ class Connectable(Protocol):
def _get_voice_state_pair(self) -> Tuple[int, int]: def _get_voice_state_pair(self) -> Tuple[int, int]:
raise NotImplementedError 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| """|coro|
Connects to voice and creates a :class:`VoiceClient` to establish Connects to voice and creates a :class:`VoiceClient` to establish