[commands] change Range to raise BadArgument for invalid values

This commit is contained in:
z03h 2022-07-16 19:27:47 -07:00 committed by GitHub
parent c7e589033d
commit faad035fa2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1055,8 +1055,9 @@ else:
Inside a :class:`HybridCommand` this functions equivalently to :class:`discord.app_commands.Range`.
If the converter fails then :class:`~.ext.commands.RangeError` is raised to
the appropriate error handlers.
If the value cannot be converted to the provided type or is outside the given range,
:class:`~.ext.commands.BadArgument` or :class:`~.ext.commands.RangeError` is raised to
the appropriate error handlers respectively.
.. versionadded:: 2.0
@ -1085,7 +1086,13 @@ else:
raise TypeError('minimum cannot be larger than maximum')
async def convert(self, ctx: Context[BotT], value: str) -> Union[int, float]:
try:
count = converted = self.annotation(value)
except ValueError:
raise BadArgument(
f'Converting to "{self.annotation.__name__}" failed for parameter "{ctx.current_parameter.name}".'
)
if self.annotation is str:
count = len(value)