mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-09-06 01:46:08 +00:00
[commands] Add displayed_name to commands.Parameter
This commit is contained in:
@ -87,7 +87,7 @@ class Parameter(inspect.Parameter):
|
||||
.. versionadded:: 2.0
|
||||
"""
|
||||
|
||||
__slots__ = ('_displayed_default', '_description', '_fallback')
|
||||
__slots__ = ('_displayed_default', '_description', '_fallback', '_displayed_name')
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
@ -97,6 +97,7 @@ class Parameter(inspect.Parameter):
|
||||
annotation: Any = empty,
|
||||
description: str = empty,
|
||||
displayed_default: str = empty,
|
||||
displayed_name: str = empty,
|
||||
) -> None:
|
||||
super().__init__(name=name, kind=kind, default=default, annotation=annotation)
|
||||
self._name = name
|
||||
@ -106,6 +107,7 @@ class Parameter(inspect.Parameter):
|
||||
self._annotation = annotation
|
||||
self._displayed_default = displayed_default
|
||||
self._fallback = False
|
||||
self._displayed_name = displayed_name
|
||||
|
||||
def replace(
|
||||
self,
|
||||
@ -116,6 +118,7 @@ class Parameter(inspect.Parameter):
|
||||
annotation: Any = MISSING,
|
||||
description: str = MISSING,
|
||||
displayed_default: Any = MISSING,
|
||||
displayed_name: Any = MISSING,
|
||||
) -> Self:
|
||||
if name is MISSING:
|
||||
name = self._name
|
||||
@ -129,6 +132,8 @@ class Parameter(inspect.Parameter):
|
||||
description = self._description
|
||||
if displayed_default is MISSING:
|
||||
displayed_default = self._displayed_default
|
||||
if displayed_name is MISSING:
|
||||
displayed_name = self._displayed_name
|
||||
|
||||
return self.__class__(
|
||||
name=name,
|
||||
@ -137,6 +142,7 @@ class Parameter(inspect.Parameter):
|
||||
annotation=annotation,
|
||||
description=description,
|
||||
displayed_default=displayed_default,
|
||||
displayed_name=displayed_name,
|
||||
)
|
||||
|
||||
if not TYPE_CHECKING: # this is to prevent anything breaking if inspect internals change
|
||||
@ -171,6 +177,14 @@ class Parameter(inspect.Parameter):
|
||||
|
||||
return None if self.required else str(self.default)
|
||||
|
||||
@property
|
||||
def displayed_name(self) -> Optional[str]:
|
||||
"""Optional[:class:`str`]: The name that is displayed to the user.
|
||||
|
||||
.. versionadded:: 2.3
|
||||
"""
|
||||
return self._displayed_name if self._displayed_name is not empty else None
|
||||
|
||||
async def get_default(self, ctx: Context[Any]) -> Any:
|
||||
"""|coro|
|
||||
|
||||
@ -193,8 +207,9 @@ def parameter(
|
||||
default: Any = empty,
|
||||
description: str = empty,
|
||||
displayed_default: str = empty,
|
||||
displayed_name: str = empty,
|
||||
) -> Any:
|
||||
r"""parameter(\*, converter=..., default=..., description=..., displayed_default=...)
|
||||
r"""parameter(\*, converter=..., default=..., description=..., displayed_default=..., displayed_name=...)
|
||||
|
||||
A way to assign custom metadata for a :class:`Command`\'s parameter.
|
||||
|
||||
@ -221,6 +236,10 @@ def parameter(
|
||||
The description of this parameter.
|
||||
displayed_default: :class:`str`
|
||||
The displayed default in :attr:`Command.signature`.
|
||||
displayed_name: :class:`str`
|
||||
The name that is displayed to the user.
|
||||
|
||||
.. versionadded:: 2.3
|
||||
"""
|
||||
return Parameter(
|
||||
name='empty',
|
||||
@ -229,6 +248,7 @@ def parameter(
|
||||
default=default,
|
||||
description=description,
|
||||
displayed_default=displayed_default,
|
||||
displayed_name=displayed_name,
|
||||
)
|
||||
|
||||
|
||||
@ -240,12 +260,13 @@ class ParameterAlias(Protocol):
|
||||
default: Any = empty,
|
||||
description: str = empty,
|
||||
displayed_default: str = empty,
|
||||
displayed_name: str = empty,
|
||||
) -> Any:
|
||||
...
|
||||
|
||||
|
||||
param: ParameterAlias = parameter
|
||||
r"""param(\*, converter=..., default=..., description=..., displayed_default=...)
|
||||
r"""param(\*, converter=..., default=..., description=..., displayed_default=..., displayed_name=...)
|
||||
|
||||
An alias for :func:`parameter`.
|
||||
|
||||
|
Reference in New Issue
Block a user