async def get_prefix(self, message):
prefix = ret = self.command_prefix<EOL>if callable(prefix):<EOL><INDENT>ret = await discord.utils.maybe_coroutine(prefix, self, message)<EOL><DEDENT>if not isinstance(ret, str):<EOL><INDENT>try:<EOL><INDENT>ret = list(ret)<EOL><DEDENT>except TypeError:<EOL><INDENT>if isinstance(ret, collections.Iterable):<EOL><INDENT>raise<EOL><DEDENT>raise TypeError("<STR_LIT>"<EOL>"<STR_LIT>".format(ret.__class__.__name__))<EOL><DEDENT>if not ret:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT><DEDENT>return ret<EOL>
|coro|

        Retrieves the prefix the bot is listening to
        with the message as a context.

        Parameters
        -----------
        message: :class:`discord.Message`
            The message context to get the prefix of.

        Returns
        --------
        Union[List[:class:`str`], :class:`str`]
            A list of prefixes or a single prefix that the bot is
            listening for.