aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/ext/commands/cog.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/discord/ext/commands/cog.py b/discord/ext/commands/cog.py
index 2a836daa..9ec49ab1 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.