def get_config(self, bot_label, config_name=None, require_ready=True):
        """
        Return the config matching the given bot_label and config_name.
        config_name is case-insensitive.
        Raise LookupError if no bot exists with this label, or no config
        exists with this name in the bot. Raise ValueError if called with a
        single argument that doesn't contain exactly one dot.
        """
        if require_ready:
            self.check_configs_ready()
        else:
            self.check_bots_ready()

        if config_name is None:
            config_name = defaults.BOT_CONFIG

        bot = self.get_bot(bot_label)

        if not require_ready and bot.configs is None:
            bot.import_configs()

        return bot.get_config(config_name, require_ready=require_ready)
Return the config matching the given bot_label and config_name.
        config_name is case-insensitive.
        Raise LookupError if no bot exists with this label, or no config
        exists with this name in the bot. Raise ValueError if called with a
        single argument that doesn't contain exactly one dot.