Browse Source
[commands] Raise TypeError when Optional is used with Greedy converter
pull/5079/head
Sebastian Law
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
6 additions and
2 deletions
-
discord/ext/commands/converter.py
-
docs/ext/commands/commands.rst
|
|
@ -26,6 +26,7 @@ DEALINGS IN THE SOFTWARE. |
|
|
|
|
|
|
|
import re |
|
|
|
import inspect |
|
|
|
import typing |
|
|
|
|
|
|
|
import discord |
|
|
|
|
|
|
@ -555,6 +556,9 @@ class _Greedy: |
|
|
|
if converter is str or converter is type(None) or converter is _Greedy: |
|
|
|
raise TypeError('Greedy[%s] is invalid.' % converter.__name__) |
|
|
|
|
|
|
|
if getattr(converter, '__origin__', None) is typing.Union and type(None) in converter.__args__: |
|
|
|
raise TypeError('Greedy[%r] is invalid.' % converter) |
|
|
|
|
|
|
|
return self.__class__(converter=converter) |
|
|
|
|
|
|
|
Greedy = _Greedy() |
|
|
|
|
|
@ -552,8 +552,8 @@ This command can be invoked any of the following ways: |
|
|
|
unintended parsing ambiguities in your code. One technique would be to clamp down the expected syntaxes |
|
|
|
allowed through custom converters or reordering the parameters to minimise clashes. |
|
|
|
|
|
|
|
To help aid with some parsing ambiguities, :class:`str`, ``None`` and :data:`~ext.commands.Greedy` are |
|
|
|
forbidden as parameters for the :data:`~ext.commands.Greedy` converter. |
|
|
|
To help aid with some parsing ambiguities, :class:`str`, ``None``, :data:`typing.Optional` and |
|
|
|
:data:`~ext.commands.Greedy` are forbidden as parameters for the :data:`~ext.commands.Greedy` converter. |
|
|
|
|
|
|
|
.. _ext_commands_error_handler: |
|
|
|
|
|
|
|