From 4adbe03d7ca03fce3411bea7bcd9e3619513ad94 Mon Sep 17 00:00:00 2001 From: SebbyLaw <44045823+SebbyLaw@users.noreply.github.com> Date: Tue, 10 Nov 2020 03:40:45 -0800 Subject: [PATCH] [commands] Allow setting description of cogs --- discord/ext/commands/cog.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/discord/ext/commands/cog.py b/discord/ext/commands/cog.py index 2a836daa6..9ec49ab14 100644 --- a/discord/ext/commands/cog.py +++ b/discord/ext/commands/cog.py @@ -70,6 +70,11 @@ class CogMeta(type): ----------- name: :class:`str` The cog name. By default, it is the name of the class with no modification. + description: :class:`str` + The cog description. By default, it is the cleaned docstring of the class. + + .. versionadded:: 1.6 + command_attrs: :class:`dict` A list of attributes to apply to every command inside this cog. The dictionary is passed into the :class:`Command` options at ``__init__``. @@ -93,6 +98,11 @@ class CogMeta(type): attrs['__cog_name__'] = kwargs.pop('name', name) attrs['__cog_settings__'] = command_attrs = kwargs.pop('command_attrs', {}) + description = kwargs.pop('description', None) + if description is None: + description = inspect.cleandoc(attrs.get('__doc__', '')) + attrs['__cog_description__'] = description + commands = {} listeners = {} no_bot_cog = 'Commands or listeners must not start with cog_ or bot_ (in method {0.__name__}.{1})' @@ -209,11 +219,11 @@ class Cog(metaclass=CogMeta): @property def description(self): """:class:`str`: Returns the cog's description, typically the cleaned docstring.""" - try: - return self.__cog_cleaned_doc__ - except AttributeError: - self.__cog_cleaned_doc__ = cleaned = inspect.getdoc(self) - return cleaned + return self.__cog_description__ + + @description.setter + def description(self, description): + self.__cog_description__ = description def walk_commands(self): """An iterator that recursively walks through this cog's commands and subcommands.