'Saves all changes to the configuration files.
:param str title: The title of the save. If a title is given, the
configuration will be saved as a new checkpoint and put in a
timestamped directory.
:param bool temporary: Indicates whether the changes made will
be quickly reversed in the future (ie. challenges)
:raises .errors.PluginError: If there was an error in
an attempt to save the configuration, or an error creating a
checkpoint'

def save(self, title=None, temporary=False):

    save_files = set(self.parser.parsed.keys())
    try:
        if temporary:
            self.reverter.add_to_temp_checkpoint(save_files, self.save_notes)
        else:
            self.reverter.add_to_checkpoint(save_files, self.save_notes)
    except errors.ReverterError as err:
        raise errors.PluginError(str(err))
    self.save_notes = ''
    self.parser.filedump(ext='')
    if (title and (not temporary)):
        try:
            self.reverter.finalize_checkpoint(title)
        except errors.ReverterError as err:
            raise errors.PluginError(str(err))
    return True
