Browse Source

[commands] Fix bug in behaviour in the cog inspection methods.

pull/1929/head
Rapptz 6 years ago
parent
commit
ab8e7b7732
  1. 9
      discord/ext/commands/cog.py
  2. 2
      docs/ext/commands/cogs.rst

9
discord/ext/commands/cog.py

@ -156,15 +156,20 @@ class Cog(metaclass=CogMeta):
return self return self
def get_commands(self): def get_commands(self):
r"""Returns a :class:`tuple` of :class:`.Command`\s and its subclasses that are r"""Returns a :class:`list` of :class:`.Command`\s that are
defined inside this cog. defined inside this cog.
.. note::
This does not include subcommands.
""" """
return self.__cog_commands__ return [c for c in self.__cog_commands__ if c.parent is None]
def walk_commands(self): def walk_commands(self):
"""An iterator that recursively walks through this cog's commands and subcommands.""" """An iterator that recursively walks through this cog's commands and subcommands."""
from .core import GroupMixin from .core import GroupMixin
for command in self.__cog_commands__: for command in self.__cog_commands__:
if command.parent is None:
yield command yield command
if isinstance(command, GroupMixin): if isinstance(command, GroupMixin):
yield from command.walk_commands() yield from command.walk_commands()

2
docs/ext/commands/cogs.rst

@ -142,7 +142,7 @@ Inspection
Since cogs ultimately are classes, we have some tools to help us inspect certain properties of the cog. Since cogs ultimately are classes, we have some tools to help us inspect certain properties of the cog.
To get a :class:`tuple` of commands, we can use :meth:`.Cog.get_commands`. :: To get a :class:`list` of commands, we can use :meth:`.Cog.get_commands`. ::
>>> cog = bot.get_cog('Greetings') >>> cog = bot.get_cog('Greetings')
>>> commands = cog.get_commands() >>> commands = cog.get_commands()

Loading…
Cancel
Save