Format with black

This commit is contained in:
StockerMC
2021-10-15 13:58:15 -04:00
parent 23b390971f
commit 161affa246
2 changed files with 294 additions and 88 deletions

View File

@@ -161,7 +161,9 @@ class ObjectConverter(IDConverter[discord.Object]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.Object:
match = self._get_id_match(argument) or re.match(r"<(?:@(?:!|&)?|#)([0-9]{15,20})>$", argument)
match = self._get_id_match(argument) or re.match(
r"<(?:@(?:!|&)?|#)([0-9]{15,20})>$", argument
)
if match is None:
raise ObjectNotFound(argument)
@@ -198,10 +200,14 @@ class MemberConverter(IDConverter[discord.Member]):
if len(argument) > 5 and argument[-5] == "#":
username, _, discriminator = argument.rpartition("#")
members = await guild.query_members(username, limit=100, cache=cache)
return discord.utils.get(members, name=username, discriminator=discriminator)
return discord.utils.get(
members, name=username, discriminator=discriminator
)
else:
members = await guild.query_members(argument, limit=100, cache=cache)
return discord.utils.find(lambda m: m.name == argument or m.nick == argument, members)
return discord.utils.find(
lambda m: m.name == argument or m.nick == argument, members
)
async def query_member_by_id(self, bot, guild, user_id):
ws = bot._get_websocket(shard_id=guild.shard_id)
@@ -226,7 +232,9 @@ class MemberConverter(IDConverter[discord.Member]):
async def convert(self, ctx: Context, argument: str) -> discord.Member:
bot = ctx.bot
match = self._get_id_match(argument) or re.match(r"<@!?([0-9]{15,20})>$", argument)
match = self._get_id_match(argument) or re.match(
r"<@!?([0-9]{15,20})>$", argument
)
guild = ctx.guild
result = None
user_id = None
@@ -239,7 +247,9 @@ class MemberConverter(IDConverter[discord.Member]):
else:
user_id = int(match.group(1))
if guild:
result = guild.get_member(user_id) or _utils_get(ctx.message.mentions, id=user_id)
result = guild.get_member(user_id) or _utils_get(
ctx.message.mentions, id=user_id
)
else:
result = _get_from_guilds(bot, "get_member", user_id)
@@ -279,13 +289,17 @@ class UserConverter(IDConverter[discord.User]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.User:
match = self._get_id_match(argument) or re.match(r"<@!?([0-9]{15,20})>$", argument)
match = self._get_id_match(argument) or re.match(
r"<@!?([0-9]{15,20})>$", argument
)
result = None
state = ctx._state
if match is not None:
user_id = int(match.group(1))
result = ctx.bot.get_user(user_id) or _utils_get(ctx.message.mentions, id=user_id)
result = ctx.bot.get_user(user_id) or _utils_get(
ctx.message.mentions, id=user_id
)
if result is None:
try:
result = await ctx.bot.fetch_user(user_id)
@@ -333,7 +347,9 @@ class PartialMessageConverter(Converter[discord.PartialMessage]):
@staticmethod
def _get_id_matches(ctx, argument):
id_regex = re.compile(r"(?:(?P<channel_id>[0-9]{15,20})-)?(?P<message_id>[0-9]{15,20})$")
id_regex = re.compile(
r"(?:(?P<channel_id>[0-9]{15,20})-)?(?P<message_id>[0-9]{15,20})$"
)
link_regex = re.compile(
r"https?://(?:(ptb|canary|www)\.)?discord(?:app)?\.com/channels/"
r"(?P<guild_id>[0-9]{15,20}|@me)"
@@ -355,7 +371,9 @@ class PartialMessageConverter(Converter[discord.PartialMessage]):
return guild_id, message_id, channel_id
@staticmethod
def _resolve_channel(ctx, guild_id, channel_id) -> Optional[PartialMessageableChannel]:
def _resolve_channel(
ctx, guild_id, channel_id
) -> Optional[PartialMessageableChannel]:
if guild_id is not None:
guild = ctx.bot.get_guild(guild_id)
if guild is not None and channel_id is not None:
@@ -389,7 +407,9 @@ class MessageConverter(IDConverter[discord.Message]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.Message:
guild_id, message_id, channel_id = PartialMessageConverter._get_id_matches(ctx, argument)
guild_id, message_id, channel_id = PartialMessageConverter._get_id_matches(
ctx, argument
)
message = ctx.bot._connection._get_message(message_id)
if message:
return message
@@ -420,13 +440,19 @@ class GuildChannelConverter(IDConverter[discord.abc.GuildChannel]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.abc.GuildChannel:
return self._resolve_channel(ctx, argument, "channels", discord.abc.GuildChannel)
return self._resolve_channel(
ctx, argument, "channels", discord.abc.GuildChannel
)
@staticmethod
def _resolve_channel(ctx: Context, argument: str, attribute: str, type: Type[CT]) -> CT:
def _resolve_channel(
ctx: Context, argument: str, attribute: str, type: Type[CT]
) -> CT:
bot = ctx.bot
match = IDConverter._get_id_match(argument) or re.match(r"<#([0-9]{15,20})>$", argument)
match = IDConverter._get_id_match(argument) or re.match(
r"<#([0-9]{15,20})>$", argument
)
result = None
guild = ctx.guild
@@ -454,10 +480,14 @@ class GuildChannelConverter(IDConverter[discord.abc.GuildChannel]):
return result
@staticmethod
def _resolve_thread(ctx: Context, argument: str, attribute: str, type: Type[TT]) -> TT:
def _resolve_thread(
ctx: Context, argument: str, attribute: str, type: Type[TT]
) -> TT:
bot = ctx.bot
match = IDConverter._get_id_match(argument) or re.match(r"<#([0-9]{15,20})>$", argument)
match = IDConverter._get_id_match(argument) or re.match(
r"<#([0-9]{15,20})>$", argument
)
result = None
guild = ctx.guild
@@ -494,7 +524,9 @@ class TextChannelConverter(IDConverter[discord.TextChannel]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.TextChannel:
return GuildChannelConverter._resolve_channel(ctx, argument, "text_channels", discord.TextChannel)
return GuildChannelConverter._resolve_channel(
ctx, argument, "text_channels", discord.TextChannel
)
class VoiceChannelConverter(IDConverter[discord.VoiceChannel]):
@@ -514,7 +546,9 @@ class VoiceChannelConverter(IDConverter[discord.VoiceChannel]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.VoiceChannel:
return GuildChannelConverter._resolve_channel(ctx, argument, "voice_channels", discord.VoiceChannel)
return GuildChannelConverter._resolve_channel(
ctx, argument, "voice_channels", discord.VoiceChannel
)
class StageChannelConverter(IDConverter[discord.StageChannel]):
@@ -533,7 +567,9 @@ class StageChannelConverter(IDConverter[discord.StageChannel]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.StageChannel:
return GuildChannelConverter._resolve_channel(ctx, argument, "stage_channels", discord.StageChannel)
return GuildChannelConverter._resolve_channel(
ctx, argument, "stage_channels", discord.StageChannel
)
class CategoryChannelConverter(IDConverter[discord.CategoryChannel]):
@@ -553,7 +589,9 @@ class CategoryChannelConverter(IDConverter[discord.CategoryChannel]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.CategoryChannel:
return GuildChannelConverter._resolve_channel(ctx, argument, "categories", discord.CategoryChannel)
return GuildChannelConverter._resolve_channel(
ctx, argument, "categories", discord.CategoryChannel
)
class StoreChannelConverter(IDConverter[discord.StoreChannel]):
@@ -572,7 +610,9 @@ class StoreChannelConverter(IDConverter[discord.StoreChannel]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.StoreChannel:
return GuildChannelConverter._resolve_channel(ctx, argument, "channels", discord.StoreChannel)
return GuildChannelConverter._resolve_channel(
ctx, argument, "channels", discord.StoreChannel
)
class ThreadConverter(IDConverter[discord.Thread]):
@@ -590,7 +630,9 @@ class ThreadConverter(IDConverter[discord.Thread]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.Thread:
return GuildChannelConverter._resolve_thread(ctx, argument, "threads", discord.Thread)
return GuildChannelConverter._resolve_thread(
ctx, argument, "threads", discord.Thread
)
class ColourConverter(Converter[discord.Colour]):
@@ -619,7 +661,9 @@ class ColourConverter(Converter[discord.Colour]):
Added support for ``rgb`` function and 3-digit hex shortcuts
"""
RGB_REGEX = re.compile(r"rgb\s*\((?P<r>[0-9]{1,3}%?)\s*,\s*(?P<g>[0-9]{1,3}%?)\s*,\s*(?P<b>[0-9]{1,3}%?)\s*\)")
RGB_REGEX = re.compile(
r"rgb\s*\((?P<r>[0-9]{1,3}%?)\s*,\s*(?P<g>[0-9]{1,3}%?)\s*,\s*(?P<b>[0-9]{1,3}%?)\s*\)"
)
def parse_hex_number(self, argument):
arg = "".join(i * 2 for i in argument) if len(argument) == 3 else argument
@@ -700,7 +744,9 @@ class RoleConverter(IDConverter[discord.Role]):
if not guild:
raise NoPrivateMessage()
match = self._get_id_match(argument) or re.match(r"<@&([0-9]{15,20})>$", argument)
match = self._get_id_match(argument) or re.match(
r"<@&([0-9]{15,20})>$", argument
)
if match:
result = guild.get_role(int(match.group(1)))
else:
@@ -779,7 +825,9 @@ class EmojiConverter(IDConverter[discord.Emoji]):
"""
async def convert(self, ctx: Context, argument: str) -> discord.Emoji:
match = self._get_id_match(argument) or re.match(r"<a?:[a-zA-Z0-9\_]{1,32}:([0-9]{15,20})>$", argument)
match = self._get_id_match(argument) or re.match(
r"<a?:[a-zA-Z0-9\_]{1,32}:([0-9]{15,20})>$", argument
)
result = None
bot = ctx.bot
guild = ctx.guild
@@ -821,7 +869,10 @@ class PartialEmojiConverter(Converter[discord.PartialEmoji]):
emoji_id = int(match.group(3))
return discord.PartialEmoji.with_state(
ctx.bot._connection, animated=emoji_animated, name=emoji_name, id=emoji_id
ctx.bot._connection,
animated=emoji_animated,
name=emoji_name,
id=emoji_id,
)
raise PartialEmojiConversionFailure(argument)
@@ -906,7 +957,11 @@ class clean_content(Converter[str]):
def resolve_member(id: int) -> str:
m = _utils_get(msg.mentions, id=id) or ctx.guild.get_member(id)
return f"@{m.display_name if self.use_nicknames else m.name}" if m else "@deleted-user"
return (
f"@{m.display_name if self.use_nicknames else m.name}"
if m
else "@deleted-user"
)
def resolve_role(id: int) -> str:
r = _utils_get(msg.role_mentions, id=id) or ctx.guild.get_role(id)
@@ -996,7 +1051,11 @@ class Greedy(List[T]):
origin = getattr(converter, "__origin__", None)
args = getattr(converter, "__args__", ())
if not (callable(converter) or isinstance(converter, Converter) or origin is not None):
if not (
callable(converter)
or isinstance(converter, Converter)
or origin is not None
):
raise TypeError("Greedy[...] expects a type or a Converter instance.")
if converter in (str, type(None)) or origin is Greedy:
@@ -1044,7 +1103,13 @@ class Option(Generic[T, DT]): # type: ignore
"name",
)
def __init__(self, default: T = inspect.Parameter.empty, *, description: DT, name: str = discord.utils.MISSING) -> None:
def __init__(
self,
default: T = inspect.Parameter.empty,
*,
description: DT,
name: str = discord.utils.MISSING,
) -> None:
self.description = description
self.default = default
self.name: str = name
@@ -1052,7 +1117,12 @@ class Option(Generic[T, DT]): # type: ignore
if TYPE_CHECKING:
# Terrible workaround for type checking reasons
def Option(default: T = inspect.Parameter.empty, *, description: str, name: str = discord.utils.MISSING) -> T:
def Option(
default: T = inspect.Parameter.empty,
*,
description: str,
name: str = discord.utils.MISSING,
) -> T:
...
@@ -1107,7 +1177,9 @@ CONVERTER_MAPPING: Dict[Type[Any], Any] = {
}
async def _actual_conversion(ctx: Context, converter, argument: str, param: inspect.Parameter):
async def _actual_conversion(
ctx: Context, converter, argument: str, param: inspect.Parameter
):
if converter is bool:
return _convert_to_bool(argument)
@@ -1116,7 +1188,9 @@ async def _actual_conversion(ctx: Context, converter, argument: str, param: insp
except AttributeError:
pass
else:
if module is not None and (module.startswith("discord.") and not module.endswith("converter")):
if module is not None and (
module.startswith("discord.") and not module.endswith("converter")
):
converter = CONVERTER_MAPPING.get(converter, converter)
try:
@@ -1142,10 +1216,14 @@ async def _actual_conversion(ctx: Context, converter, argument: str, param: insp
except AttributeError:
name = converter.__class__.__name__
raise BadArgument(f'Converting to "{name}" failed for parameter "{param.name}".') from exc
raise BadArgument(
f'Converting to "{name}" failed for parameter "{param.name}".'
) from exc
async def run_converters(ctx: Context, converter, argument: str, param: inspect.Parameter):
async def run_converters(
ctx: Context, converter, argument: str, param: inspect.Parameter
):
"""|coro|
Runs converters for a given converter, argument, and parameter.