'system_upload_presets_security': 'none',
    'system_manage_system_security': 'none',
    'service_release_check_security': 'none',
    'service_release_check_url': 'http://metapublisher.org/service/2.3/update',
    'service_community_url': 'http://metapublisher.org/service/2.3/community',
    'service_manual_url': 'http://metapublisher.org/service/2.3/manual',
    'service_reference_url': 'http://metapublisher.org/service/2.3/reference',
    'service_feedback_url': 'http://metapublisher.org/service/2.3/feedback',
}


# ============================================================================
# Configuration File

parser = SafeConfigParser()
parser.read(join(basepath, 'settings.conf'))
for section in parser.sections():
    for option, value in parser.items(section):
        key = '%s_%s' % (section, option)
        if not key in settings:
            raise ConfigurationError('!TXT! Unknown configuration option "%s" in section "%s"' % (option, section))
        if option.endswith('_security'):
            value = parser.get(section, option)
            if not value in ['protected', 'private', 'none']:
                raise ConfigurationError('!TXT! Invalid value "%s" for security option "%s" in section "%s"' % (value, option, section))
        elif settings[key] in [true, false]:
            value = parser.getboolean(section, option)
        elif isinstance(settings[key], IntType):
            value = parser.getint(section, option)
        elif isinstance(settings[key], FloatType):
            value = parser.getfloat(section, option)