Browse Source

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

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

15
discord/ext/commands/cog.py

@ -156,18 +156,23 @@ 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__:
yield command if command.parent is None:
if isinstance(command, GroupMixin): yield command
yield from command.walk_commands() if isinstance(command, GroupMixin):
yield from command.walk_commands()
def get_listeners(self): def get_listeners(self):
"""Returns a :class:`list` of (name, function) listener pairs that are defined in this cog.""" """Returns a :class:`list` of (name, function) listener pairs that are defined in this cog."""

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