Type up **kwargs of various methods

This commit is contained in:
Nadir Chowdhury
2021-05-11 01:24:48 +01:00
committed by GitHub
parent 8bc489dba8
commit 757cfad38f
14 changed files with 453 additions and 72 deletions

View File

@ -27,11 +27,11 @@ import inspect
import itertools
import sys
from operator import attrgetter
from typing import List, Literal, Optional, TYPE_CHECKING, Union, overload
import discord.abc
from . import utils
from .errors import ClientException
from .user import BaseUser, User
from .activity import create_activity
from .permissions import Permissions
@ -44,6 +44,12 @@ __all__ = (
'Member',
)
if TYPE_CHECKING:
from .channel import VoiceChannel, StageChannel
from .abc import Snowflake
VocalGuildChannel = Union[VoiceChannel, StageChannel]
class VoiceState:
"""Represents a Discord user's voice state.
@ -517,6 +523,19 @@ class Member(discord.abc.Messageable, _BaseUser):
"""Optional[:class:`VoiceState`]: Returns the member's current voice state."""
return self.guild._voice_state_for(self._user.id)
@overload
async def ban(
self,
*,
reason: Optional[str] = ...,
delete_message_days: Literal[1, 2, 3, 4, 5, 6, 7] = ...,
) -> None:
...
@overload
async def ban(self) -> None:
...
async def ban(self, **kwargs):
"""|coro|
@ -524,20 +543,38 @@ class Member(discord.abc.Messageable, _BaseUser):
"""
await self.guild.ban(self, **kwargs)
async def unban(self, *, reason=None):
async def unban(self, *, reason: Optional[str] = None) -> None:
"""|coro|
Unbans this member. Equivalent to :meth:`Guild.unban`.
"""
await self.guild.unban(self, reason=reason)
async def kick(self, *, reason=None):
async def kick(self, *, reason: Optional[str] = None) -> None:
"""|coro|
Kicks this member. Equivalent to :meth:`Guild.kick`.
"""
await self.guild.kick(self, reason=reason)
@overload
async def edit(
self,
*,
reason: Optional[str] = ...,
nick: Optional[str] = None,
mute: bool = ...,
deafen: bool = ...,
suppress: bool = ...,
roles: Optional[List[discord.abc.Snowflake]] = ...,
voice_channel: Optional[VocalGuildChannel] = ...,
) -> None:
...
@overload
async def edit(self) -> None:
...
async def edit(self, *, reason=None, **fields):
"""|coro|
@ -685,7 +722,7 @@ class Member(discord.abc.Messageable, _BaseUser):
else:
await self._state.http.edit_my_voice_state(self.guild.id, payload)
async def move_to(self, channel, *, reason=None):
async def move_to(self, channel: VocalGuildChannel, *, reason: Optional[str] = None) -> None:
"""|coro|
Moves a member to a new voice channel (they must be connected first).
@ -708,7 +745,7 @@ class Member(discord.abc.Messageable, _BaseUser):
"""
await self.edit(voice_channel=channel, reason=reason)
async def add_roles(self, *roles, reason=None, atomic=True):
async def add_roles(self, *roles: Snowflake, reason: Optional[str] = None, atomic: bool = True):
r"""|coro|
Gives the member a number of :class:`Role`\s.
@ -747,7 +784,7 @@ class Member(discord.abc.Messageable, _BaseUser):
for role in roles:
await req(guild_id, user_id, role.id, reason=reason)
async def remove_roles(self, *roles, reason=None, atomic=True):
async def remove_roles(self, *roles: Snowflake, reason: Optional[str] = None, atomic: bool = True) -> None:
r"""|coro|
Removes :class:`Role`\s from this member.