diff options
Diffstat (limited to 'discord/ext/commands')
| -rw-r--r-- | discord/ext/commands/bot.py | 6 | ||||
| -rw-r--r-- | discord/ext/commands/cooldowns.py | 6 | ||||
| -rw-r--r-- | discord/ext/commands/core.py | 8 | ||||
| -rw-r--r-- | discord/ext/commands/errors.py | 10 | ||||
| -rw-r--r-- | discord/ext/commands/help.py | 42 | ||||
| -rw-r--r-- | discord/ext/commands/view.py | 2 |
6 files changed, 38 insertions, 36 deletions
diff --git a/discord/ext/commands/bot.py b/discord/ext/commands/bot.py index 59f11c74..dabe1439 100644 --- a/discord/ext/commands/bot.py +++ b/discord/ext/commands/bot.py @@ -846,7 +846,7 @@ class BotBase(GroupMixin): raise raise TypeError("command_prefix must be plain string, iterable of strings, or callable " - "returning either of these, not {}".format(ret.__class__.__name__)) + f"returning either of these, not {ret.__class__.__name__}") if not ret: raise ValueError("Iterable command_prefix must contain at least one prefix") @@ -907,13 +907,13 @@ class BotBase(GroupMixin): except TypeError: if not isinstance(prefix, list): raise TypeError("get_prefix must return either a string or a list of string, " - "not {}".format(prefix.__class__.__name__)) + f"not {prefix.__class__.__name__}") # It's possible a bad command_prefix got us here. for value in prefix: if not isinstance(value, str): raise TypeError("Iterable command_prefix or list returned from get_prefix must " - "contain only strings, not {}".format(value.__class__.__name__)) + f"contain only strings, not {value.__class__.__name__}") # Getting here shouldn't happen raise diff --git a/discord/ext/commands/cooldowns.py b/discord/ext/commands/cooldowns.py index 7cfc9fd7..fc438c9f 100644 --- a/discord/ext/commands/cooldowns.py +++ b/discord/ext/commands/cooldowns.py @@ -131,7 +131,7 @@ class Cooldown: return Cooldown(self.rate, self.per, self.type) def __repr__(self): - return '<Cooldown rate: {0.rate} per: {0.per} window: {0._window} tokens: {0._tokens}>'.format(self) + return f'<Cooldown rate: {self.rate} per: {self.per} window: {self._window} tokens: {self._tokens}>' class CooldownMapping: def __init__(self, original): @@ -202,7 +202,7 @@ class _Semaphore: self._waiters = deque() def __repr__(self): - return '<_Semaphore value={0.value} waiters={1}>'.format(self, len(self._waiters)) + return f'<_Semaphore value={self.value} waiters={len(self._waiters)}>' def locked(self): return self.value == 0 @@ -259,7 +259,7 @@ class MaxConcurrency: return self.__class__(self.number, per=self.per, wait=self.wait) def __repr__(self): - return '<MaxConcurrency per={0.per!r} number={0.number} wait={0.wait}>'.format(self) + return f'<MaxConcurrency per={self.per!r} number={self.number} wait={self.wait}>' def get_key(self, message): return self.per.get_key(message) diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index 0de14b45..a570ee48 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -695,15 +695,13 @@ class Command(_BaseCommand): try: next(iterator) except StopIteration: - fmt = 'Callback for {0.name} command is missing "self" parameter.' - raise discord.ClientException(fmt.format(self)) + raise discord.ClientException(f'Callback for {self.name} command is missing "self" parameter.') # next we have the 'ctx' as the next parameter try: next(iterator) except StopIteration: - fmt = 'Callback for {0.name} command is missing "ctx" parameter.' - raise discord.ClientException(fmt.format(self)) + raise discord.ClientException(f'Callback for {self.name} command is missing "ctx" parameter.') for name, param in iterator: if param.kind == param.POSITIONAL_OR_KEYWORD or param.kind == param.POSITIONAL_ONLY: @@ -2046,7 +2044,7 @@ def before_invoke(coro): @commands.before_invoke(record_usage) @commands.command() async def when(self, ctx): # Output: <User> used when at <Time> - await ctx.send('and i have existed since {}'.format(ctx.bot.user.created_at)) + await ctx.send(f'and i have existed since {ctx.bot.user.created_at}') @commands.command() async def where(self, ctx): # Output: <Nothing> diff --git a/discord/ext/commands/errors.py b/discord/ext/commands/errors.py index f9fbba0f..f8a2724d 100644 --- a/discord/ext/commands/errors.py +++ b/discord/ext/commands/errors.py @@ -424,7 +424,7 @@ class CommandInvokeError(CommandError): """ def __init__(self, e): self.original = e - super().__init__('Command raised an exception: {0.__class__.__name__}: {0}'.format(e)) + super().__init__(f'Command raised an exception: {e.__class__.__name__}: {e}') class CommandOnCooldown(CommandError): """Exception raised when the command being invoked is on cooldown. @@ -764,8 +764,8 @@ class ExtensionFailed(ExtensionError): """ def __init__(self, name, original): self.original = original - fmt = 'Extension {0!r} raised an error: {1.__class__.__name__}: {1}' - super().__init__(fmt.format(name, original), name=name) + msg = f'Extension {name!r} raised an error: {original.__class__.__name__}: {original}' + super().__init__(msg, name=name) class ExtensionNotFound(ExtensionError): """An exception raised when an extension is not found. @@ -784,8 +784,8 @@ class ExtensionNotFound(ExtensionError): """ def __init__(self, name, original=None): self.original = None - fmt = 'Extension {0!r} could not be loaded.' - super().__init__(fmt.format(name), name=name) + msg = f'Extension {name!r} could not be loaded.' + super().__init__(msg, name=name) class CommandRegistrationError(ClientException): """An exception raised when the command can't be added diff --git a/discord/ext/commands/help.py b/discord/ext/commands/help.py index 117da590..177d3b9b 100644 --- a/discord/ext/commands/help.py +++ b/discord/ext/commands/help.py @@ -60,6 +60,7 @@ __all__ = ( # Type <prefix>help command for more info on a command. # You can also type <prefix>help category for more info on a category. + class Paginator: """A class that aids in paginating code blocks for Discord messages. @@ -81,6 +82,7 @@ class Paginator: The character string inserted between lines. e.g. a newline character. .. versionadded:: 1.7 """ + def __init__(self, prefix='```', suffix='```', max_size=2000, linesep='\n'): self.prefix = prefix self.suffix = suffix @@ -92,7 +94,7 @@ class Paginator: """Clears the paginator to have no pages.""" if self.prefix is not None: self._current_page = [self.prefix] - self._count = len(self.prefix) + self._linesep_len # prefix + newline + self._count = len(self.prefix) + self._linesep_len # prefix + newline else: self._current_page = [] self._count = 0 @@ -150,7 +152,7 @@ class Paginator: if self.prefix is not None: self._current_page = [self.prefix] - self._count = len(self.prefix) + self._linesep_len # prefix + linesep + self._count = len(self.prefix) + self._linesep_len # prefix + linesep else: self._current_page = [] self._count = 0 @@ -171,10 +173,12 @@ class Paginator: fmt = '<Paginator prefix: {0.prefix!r} suffix: {0.suffix!r} linesep: {0.linesep!r} max_size: {0.max_size} count: {0._count}>' return fmt.format(self) + def _not_overriden(f): f.__help_command_not_overriden__ = True return f + class _HelpCommandImpl(Command): def __init__(self, inject, *args, **kwargs): super().__init__(inject.command_callback, *args, **kwargs) @@ -250,6 +254,7 @@ class _HelpCommandImpl(Command): cog.walk_commands = cog.walk_commands.__wrapped__ self.cog = None + class HelpCommand: r"""The base implementation for help command formatting. @@ -288,7 +293,7 @@ class HelpCommand: '@everyone': '@\u200beveryone', '@here': '@\u200bhere', r'<@!?[0-9]{17,22}>': '@deleted-user', - r'<@&[0-9]{17,22}>': '@deleted-role' + r'<@&[0-9]{17,22}>': '@deleted-role', } MENTION_PATTERN = re.compile('|'.join(MENTION_TRANSFORMS.keys())) @@ -305,10 +310,7 @@ class HelpCommand: # The keys can be safely copied as-is since they're 99.99% certain of being # string keys deepcopy = copy.deepcopy - self.__original_kwargs__ = { - k: deepcopy(v) - for k, v in kwargs.items() - } + self.__original_kwargs__ = {k: deepcopy(v) for k, v in kwargs.items()} self.__original_args__ = deepcopy(args) return self @@ -369,10 +371,7 @@ class HelpCommand: def get_bot_mapping(self): """Retrieves the bot mapping passed to :meth:`send_bot_help`.""" bot = self.context.bot - mapping = { - cog: cog.get_commands() - for cog in bot.cogs.values() - } + mapping = {cog: cog.get_commands() for cog in bot.cogs.values()} mapping[None] = [c for c in bot.commands if c.cog is None] return mapping @@ -607,10 +606,7 @@ class HelpCommand: The maximum width of the commands. """ - as_lengths = ( - discord.utils._string_width(c.name) - for c in commands - ) + as_lengths = (discord.utils._string_width(c.name) for c in commands) return max(as_lengths, default=0) def get_destination(self): @@ -880,6 +876,7 @@ class HelpCommand: else: return await self.send_command_help(cmd) + class DefaultHelpCommand(HelpCommand): """The implementation of the default help command. @@ -940,8 +937,10 @@ class DefaultHelpCommand(HelpCommand): def get_ending_note(self): """:class:`str`: Returns help command's ending note. This is mainly useful to override for i18n purposes.""" command_name = self.invoked_with - return f"Type {self.clean_prefix}{command_name} command for more info on a command.\n" \ - f"You can also type {self.clean_prefix}{command_name} category for more info on a category." + return ( + f"Type {self.clean_prefix}{command_name} command for more info on a command.\n" + f"You can also type {self.clean_prefix}{command_name} category for more info on a category." + ) def add_indented_commands(self, commands, *, heading, max_size=None): """Indents a list of commands after the specified heading. @@ -1030,6 +1029,7 @@ class DefaultHelpCommand(HelpCommand): self.paginator.add_line(bot.description, empty=True) no_category = f'\u200b{self.no_category}:' + def get_category(command, *, no_category=no_category): cog = command.cog return cog.qualified_name + ':' if cog is not None else no_category @@ -1083,6 +1083,7 @@ class DefaultHelpCommand(HelpCommand): await self.send_pages() + class MinimalHelpCommand(HelpCommand): """An implementation of a help command with minimal output. @@ -1149,8 +1150,10 @@ class MinimalHelpCommand(HelpCommand): The help command opening note. """ command_name = self.invoked_with - return "Use `{0}{1} [command]` for more info on a command.\n" \ - "You can also use `{0}{1} [category]` for more info on a category.".format(self.clean_prefix, command_name) + return ( + f"Use `{self.clean_prefix}{command_name} [command]` for more info on a command.\n" + f"You can also use `{self.clean_prefix}{command_name} [category]` for more info on a category." + ) def get_command_signature(self, command): return f'{self.clean_prefix}{command.qualified_name} {command.signature}' @@ -1273,6 +1276,7 @@ class MinimalHelpCommand(HelpCommand): self.paginator.add_line(note, empty=True) no_category = f'\u200b{self.no_category}' + def get_category(command, *, no_category=no_category): cog = command.cog return cog.qualified_name if cog is not None else no_category diff --git a/discord/ext/commands/view.py b/discord/ext/commands/view.py index 763cf73e..a7dc7236 100644 --- a/discord/ext/commands/view.py +++ b/discord/ext/commands/view.py @@ -189,4 +189,4 @@ class StringView: def __repr__(self): - return '<StringView pos: {0.index} prev: {0.previous} end: {0.end} eof: {0.eof}>'.format(self) + return f'<StringView pos: {self.index} prev: {self.previous} end: {self.end} eof: {self.eof}>' |