async def send_help(self, *args):
from .core import Group, Command<EOL>bot = self.bot<EOL>cmd = bot.help_command<EOL>if cmd is None:<EOL><INDENT>return None<EOL><DEDENT>cmd = cmd.copy()<EOL>cmd.context = self<EOL>if len(args) == <NUM_LIT:0>:<EOL><INDENT>await cmd.prepare_help_command(self, None)<EOL>mapping = cmd.get_bot_mapping()<EOL>return await cmd.send_bot_help(mapping)<EOL><DEDENT>entity = args[<NUM_LIT:0>]<EOL>if entity is None:<EOL><INDENT>return None<EOL><DEDENT>if isinstance(entity, str):<EOL><INDENT>entity = bot.get_cog(entity) or bot.get_command(entity)<EOL><DEDENT>try:<EOL><INDENT>qualified_name = entity.qualified_name<EOL><DEDENT>except AttributeError:<EOL><INDENT>return None<EOL><DEDENT>await cmd.prepare_help_command(self, entity.qualified_name)<EOL>if hasattr(entity, '<STR_LIT>'):<EOL><INDENT>return await cmd.send_cog_help(entity)<EOL><DEDENT>elif isinstance(entity, Group):<EOL><INDENT>return await cmd.send_group_help(entity)<EOL><DEDENT>elif isinstance(entity, Command):<EOL><INDENT>return await cmd.send_command_help(entity)<EOL><DEDENT>else:<EOL><INDENT>return None<EOL><DEDENT>
send_help(entity=<bot>)

        |coro|

        Shows the help command for the specified entity if given.
        The entity can be a command or a cog.

        If no entity is given, then it'll show help for the
        entire bot.

        If the entity is a string, then it looks up whether it's a
        :class:`Cog` or a :class:`Command`.

        .. note::

            Due to the way this function works, instead of returning
            something similar to :meth:`~.commands.HelpCommand.command_not_found`
            this returns :class:`None` on bad input or no help command.

        Parameters
        ------------
        entity: Optional[Union[:class:`Command`, :class:`Cog`, :class:`str`]]
            The entity to show help for.

        Returns
        --------
        Any
            The result of the help command, if any.