def METHOD_NAME(self, profile_name: str, reset: bool = True):
    if reset:
        self.unload_profile()
    log.info("Loading shader profile {0}.".format(profile_name))
    if profile_name not in self.profiles:
        log.error("Shader profile {0} does not exist.".format(profile_name))
        return False
    profile = self.profiles[profile_name]
    settings_to_apply = []
    shaders_to_apply = []
    try:
        # Read Settings & Shaders
        for group in self.default_groups:
            self.process_setting_group(group, settings_to_apply, shaders_to_apply)
        for group in profile.get("setting-groups", []):
            self.process_setting_group(group, settings_to_apply, shaders_to_apply)
        for shader in profile.get("shaders", []):
            shaders_to_apply.append(
                os.path.join(self.shader_pack, "shaders", shader)
            )
        # Apply Settings
        already_set = set()
        for key, value in settings_to_apply:
            if (key, value) in already_set:
                continue
            log.debug("Set MPV setting {0} to {1}".format(key, value))
            setattr(self.player, key, value)
            already_set.add((key, value))
        # Apply Shaders
        log.debug("Set shaders: {0}".format(shaders_to_apply))
        self.player.glsl_shaders = shaders_to_apply
        self.current_profile = profile_name
        return True
    except MPVSettingError:
        log.error("Could not apply shader profile.", exc_info=True)
        return False