diff options
| author | Nadir Chowdhury <[email protected]> | 2021-05-11 01:24:48 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-05-10 20:24:48 -0400 |
| commit | 757cfad38f340f31f1b18bc198b3aa83e9cbe6dc (patch) | |
| tree | 9d8f4c643e21aa4310c75090d4a666863247014e /discord/member.py | |
| parent | [tasks] Add support for explicit time parameter (diff) | |
| download | discord.py-757cfad38f340f31f1b18bc198b3aa83e9cbe6dc.tar.xz discord.py-757cfad38f340f31f1b18bc198b3aa83e9cbe6dc.zip | |
Type up **kwargs of various methods
Diffstat (limited to 'discord/member.py')
| -rw-r--r-- | discord/member.py | 49 |
1 files changed, 43 insertions, 6 deletions
diff --git a/discord/member.py b/discord/member.py index 4eeebcba..008de365 100644 --- a/discord/member.py +++ b/discord/member.py @@ -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. |