aboutsummaryrefslogtreecommitdiff
path: root/discord/ext/commands/view.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2019-03-12 05:27:34 -0400
committerRapptz <[email protected]>2019-03-12 05:27:34 -0400
commit560783c3d222d156a073fad5d467cd6331b74ecb (patch)
tree1a27882bab9f24e35813a7cfe9e5815c7852b76e /discord/ext/commands/view.py
parentAdd exception hierarchy to the documentation. (diff)
downloaddiscord.py-560783c3d222d156a073fad5d467cd6331b74ecb.tar.xz
discord.py-560783c3d222d156a073fad5d467cd6331b74ecb.zip
[commands] Separate view parsing errors from BadArgument.
This causes them to be raised from a new exception named ArgumentParsingError with 3 children for ease with i18n. This is technically a breaking change since it no longer derives from BadArgument, though catching UserInputError will prevent this change from affecting the user.
Diffstat (limited to 'discord/ext/commands/view.py')
-rw-r--r--discord/ext/commands/view.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/discord/ext/commands/view.py b/discord/ext/commands/view.py
index 251c535a..ad34e0a4 100644
--- a/discord/ext/commands/view.py
+++ b/discord/ext/commands/view.py
@@ -24,7 +24,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
"""
-from .errors import BadArgument
+from .errors import UnexpectedQuoteError, InvalidEndOfQuotedStringError, ExpectedClosingQuoteError
class StringView:
def __init__(self, buffer):
@@ -151,7 +151,7 @@ def quoted_word(view):
if not current:
if is_quoted:
# unexpected EOF
- raise BadArgument('Expected closing {}.'.format(close_quote))
+ raise ExpectedClosingQuoteError(close_quote)
return ''.join(result)
# currently we accept strings in the format of "hello world"
@@ -162,7 +162,7 @@ def quoted_word(view):
# string ends with \ and no character after it
if is_quoted:
# if we're quoted then we're expecting a closing quote
- raise BadArgument('Expected closing {}.'.format(close_quote))
+ raise ExpectedClosingQuoteError(close_quote)
# if we aren't then we just let it through
return ''.join(result)
@@ -177,14 +177,14 @@ def quoted_word(view):
if not is_quoted and current in _all_quotes:
# we aren't quoted
- raise BadArgument('Unexpected quote mark in non-quoted string')
+ raise UnexpectedQuoteError(current)
# closing quote
if is_quoted and current == close_quote:
next_char = view.get()
valid_eof = not next_char or next_char.isspace()
if not valid_eof:
- raise BadArgument('Expected space after closing quotation')
+ raise InvalidEndOfQuotedStringError(next_char)
# we're quoted so it's okay
return ''.join(result)