1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 19:44:20 +00:00

Improve error messages

This commit is contained in:
Steffo 2019-10-23 12:15:17 +02:00
parent c0bb9c45c0
commit d67110be09

View file

@ -15,12 +15,12 @@ class CommandArgs(list):
try: try:
return super().__getitem__(item) return super().__getitem__(item)
except IndexError: except IndexError:
raise InvalidInputError(f'Tried to get missing [{item}] arg from CommandArgs') raise InvalidInputError(f'Missing argument #{item+1}.')
if isinstance(item, slice): if isinstance(item, slice):
try: try:
return super().__getitem__(item) return super().__getitem__(item)
except IndexError: except IndexError:
raise InvalidInputError(f'Tried to get invalid [{item}] slice from CommandArgs') raise InvalidInputError(f'Cannot get arguments from #{item.start+1} to #{item.stop+1}.')
raise ValueError(f"Invalid type passed to CommandArgs.__getattr__: {type(item)}") raise ValueError(f"Invalid type passed to CommandArgs.__getattr__: {type(item)}")
def joined(self, *, require_at_least=0) -> str: def joined(self, *, require_at_least=0) -> str:
@ -35,7 +35,7 @@ class CommandArgs(list):
Returns: Returns:
The space-joined string.""" The space-joined string."""
if len(self) < require_at_least: if len(self) < require_at_least:
raise InvalidInputError("Not enough arguments") raise InvalidInputError(f"Not enough arguments specified (minimum is {require_at_least}).")
return " ".join(self) return " ".join(self)
def match(self, pattern: typing.Union[str, typing.Pattern], *flags) -> typing.Sequence[typing.AnyStr]: def match(self, pattern: typing.Union[str, typing.Pattern], *flags) -> typing.Sequence[typing.AnyStr]:
@ -52,7 +52,7 @@ class CommandArgs(list):
text = self.joined() text = self.joined()
match = re.match(pattern, text, *flags) match = re.match(pattern, text, *flags)
if match is None: if match is None:
raise InvalidInputError("Pattern didn't match") raise InvalidInputError("Invalid syntax.")
return match.groups() return match.groups()
def optional(self, index: int, default=None): def optional(self, index: int, default=None):