config: Switch to list of core_schemas
This commit is contained in:
parent
943a3097a9
commit
10d7c15792
@ -53,7 +53,7 @@ def main():
|
||||
raw_config = config_lib.load(config_files, config_overrides, extensions)
|
||||
extensions = ext.filter_enabled_extensions(raw_config, extensions)
|
||||
config = config_lib.validate(
|
||||
raw_config, config_lib.config_schemas, extensions)
|
||||
raw_config, config_lib.core_schemas, extensions)
|
||||
log.setup_log_levels(config)
|
||||
check_old_locations()
|
||||
|
||||
@ -139,7 +139,7 @@ def show_config_callback(option, opt, value, parser):
|
||||
raw_config = config_lib.load(files, overrides, extensions)
|
||||
enabled_extensions = ext.filter_enabled_extensions(raw_config, extensions)
|
||||
config = config_lib.validate(
|
||||
raw_config, config_lib.config_schemas, enabled_extensions)
|
||||
raw_config, config_lib.core_schemas, enabled_extensions)
|
||||
|
||||
# TODO: create mopidy.config.format?
|
||||
output = []
|
||||
|
||||
@ -13,26 +13,27 @@ from mopidy.utils import path
|
||||
|
||||
logger = logging.getLogger('mopdiy.config')
|
||||
|
||||
config_schemas = {} # TODO: use ordered dict or list?
|
||||
config_schemas['logging'] = ConfigSchema('logging')
|
||||
config_schemas['logging']['console_format'] = String()
|
||||
config_schemas['logging']['debug_format'] = String()
|
||||
config_schemas['logging']['debug_file'] = Path()
|
||||
_logging_schema = ConfigSchema('logging')
|
||||
_logging_schema['console_format'] = String()
|
||||
_logging_schema['debug_format'] = String()
|
||||
_logging_schema['debug_file'] = Path()
|
||||
|
||||
config_schemas['logging.levels'] = LogLevelConfigSchema('logging.levels')
|
||||
_loglevels_schema = LogLevelConfigSchema('logging.levels')
|
||||
|
||||
config_schemas['audio'] = ConfigSchema('audio')
|
||||
config_schemas['audio']['mixer'] = String()
|
||||
config_schemas['audio']['mixer_track'] = String(optional=True)
|
||||
config_schemas['audio']['output'] = String()
|
||||
_audio_schema = ConfigSchema('audio')
|
||||
_audio_schema['mixer'] = String()
|
||||
_audio_schema['mixer_track'] = String(optional=True)
|
||||
_audio_schema['output'] = String()
|
||||
|
||||
config_schemas['proxy'] = ConfigSchema('proxy')
|
||||
config_schemas['proxy']['hostname'] = Hostname(optional=True)
|
||||
config_schemas['proxy']['username'] = String(optional=True)
|
||||
config_schemas['proxy']['password'] = String(optional=True, secret=True)
|
||||
_proxy_schema = ConfigSchema('proxy')
|
||||
_proxy_schema['hostname'] = Hostname(optional=True)
|
||||
_proxy_schema['username'] = String(optional=True)
|
||||
_proxy_schema['password'] = String(optional=True, secret=True)
|
||||
|
||||
# NOTE: if multiple outputs ever comes something like LogLevelConfigSchema
|
||||
#config_schemas['audio.outputs'] = config.AudioOutputConfigSchema()
|
||||
#_outputs_schema = config.AudioOutputConfigSchema()
|
||||
|
||||
core_schemas = [_logging_schema, _loglevels_schema, _audio_schema, _proxy_schema]
|
||||
|
||||
|
||||
def read(config_file):
|
||||
@ -86,7 +87,7 @@ def _load(files, defaults, overrides):
|
||||
def validate(raw_config, schemas, extensions=None):
|
||||
# Collect config schemas to validate against
|
||||
extension_schemas = [e.get_config_schema() for e in extensions or []]
|
||||
config, errors = _validate(raw_config, schemas.values() + extension_schemas)
|
||||
config, errors = _validate(raw_config, schemas + extension_schemas)
|
||||
|
||||
if errors:
|
||||
# TODO: raise error instead.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user