Voice et bot modif
This commit is contained in:
parent
189d56026b
commit
7333a22bcd
10774 changed files with 634644 additions and 933308 deletions
|
|
@ -23,6 +23,15 @@ def _join_param_hints(param_hint: cabc.Sequence[str] | str | None) -> str | None
|
|||
return param_hint
|
||||
|
||||
|
||||
def _format_possibilities(possibilities: list[str]) -> str:
|
||||
possibility_str = ", ".join(repr(p) for p in sorted(possibilities))
|
||||
return ngettext(
|
||||
"Did you mean {possibility}?",
|
||||
"(Did you mean one of: {possibilities}?)",
|
||||
len(possibilities),
|
||||
).format(possibility=possibility_str, possibilities=possibility_str)
|
||||
|
||||
|
||||
class ClickException(Exception):
|
||||
"""An exception that Click can handle and show to the user."""
|
||||
|
||||
|
|
@ -78,8 +87,12 @@ class UsageError(ClickException):
|
|||
self.ctx is not None
|
||||
and self.ctx.command.get_help_option(self.ctx) is not None
|
||||
):
|
||||
help_names = self.ctx.command.get_help_option_names(self.ctx)
|
||||
# Pick the longest name (like ``--help`` over ``-h``) for
|
||||
# readability in error messages.
|
||||
hint = _("Try '{command} {option}' for help.").format(
|
||||
command=self.ctx.command_path, option=self.ctx.help_option_names[0]
|
||||
command=self.ctx.command_path,
|
||||
option=max(help_names, key=len),
|
||||
)
|
||||
hint = f"{hint}\n"
|
||||
if self.ctx is not None:
|
||||
|
|
@ -125,7 +138,7 @@ class BadParameter(UsageError):
|
|||
if self.param_hint is not None:
|
||||
param_hint = self.param_hint
|
||||
elif self.param is not None:
|
||||
param_hint = self.param.get_error_hint(self.ctx) # type: ignore
|
||||
param_hint = self.param.get_error_hint(self.ctx)
|
||||
else:
|
||||
return _("Invalid value: {message}").format(message=self.message)
|
||||
|
||||
|
|
@ -161,7 +174,7 @@ class MissingParameter(BadParameter):
|
|||
if self.param_hint is not None:
|
||||
param_hint: cabc.Sequence[str] | str | None = self.param_hint
|
||||
elif self.param is not None:
|
||||
param_hint = self.param.get_error_hint(self.ctx) # type: ignore
|
||||
param_hint = self.param.get_error_hint(self.ctx)
|
||||
else:
|
||||
param_hint = None
|
||||
|
||||
|
|
@ -206,8 +219,7 @@ class MissingParameter(BadParameter):
|
|||
|
||||
|
||||
class NoSuchOption(UsageError):
|
||||
"""Raised if click attempted to handle an option that does not
|
||||
exist.
|
||||
"""Raised if Click attempted to handle an option that does not exist.
|
||||
|
||||
.. versionadded:: 4.0
|
||||
"""
|
||||
|
|
@ -216,27 +228,54 @@ class NoSuchOption(UsageError):
|
|||
self,
|
||||
option_name: str,
|
||||
message: str | None = None,
|
||||
possibilities: cabc.Sequence[str] | None = None,
|
||||
possibilities: cabc.Iterable[str] | None = None,
|
||||
ctx: Context | None = None,
|
||||
) -> None:
|
||||
if message is None:
|
||||
message = _("No such option: {name}").format(name=option_name)
|
||||
message = _("No such option {name!r}.").format(name=option_name)
|
||||
|
||||
super().__init__(message, ctx)
|
||||
self.option_name = option_name
|
||||
self.possibilities = possibilities
|
||||
self.possibilities: list[str] | None = None
|
||||
if possibilities:
|
||||
from difflib import get_close_matches
|
||||
|
||||
self.possibilities = get_close_matches(option_name, possibilities)
|
||||
|
||||
def format_message(self) -> str:
|
||||
if not self.possibilities:
|
||||
return self.message
|
||||
return f"{self.message} {_format_possibilities(self.possibilities)}"
|
||||
|
||||
possibility_str = ", ".join(sorted(self.possibilities))
|
||||
suggest = ngettext(
|
||||
"Did you mean {possibility}?",
|
||||
"(Possible options: {possibilities})",
|
||||
len(self.possibilities),
|
||||
).format(possibility=possibility_str, possibilities=possibility_str)
|
||||
return f"{self.message} {suggest}"
|
||||
|
||||
class NoSuchCommand(UsageError):
|
||||
"""Raised if Click attempted to handle a command that does not exist.
|
||||
|
||||
.. versionadded:: 8.4.0
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
command_name: str,
|
||||
message: str | None = None,
|
||||
possibilities: cabc.Iterable[str] | None = None,
|
||||
ctx: Context | None = None,
|
||||
) -> None:
|
||||
if message is None:
|
||||
message = _("No such command {name!r}.").format(name=command_name)
|
||||
|
||||
super().__init__(message, ctx)
|
||||
self.command_name = command_name
|
||||
self.possibilities: list[str] | None = None
|
||||
if possibilities:
|
||||
from difflib import get_close_matches
|
||||
|
||||
self.possibilities = get_close_matches(command_name, possibilities)
|
||||
|
||||
def format_message(self) -> str:
|
||||
if not self.possibilities:
|
||||
return self.message
|
||||
return f"{self.message} {_format_possibilities(self.possibilities)}"
|
||||
|
||||
|
||||
class BadOptionUsage(UsageError):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue