From 10d7c157922b341bb924977ef82887066521e48e Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 13 Apr 2013 22:44:36 +0200 Subject: [PATCH] config: Switch to list of core_schemas --- mopidy/__main__.py | 4 ++-- mopidy/config/__init__.py | 33 +++++++++++++++++---------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/mopidy/__main__.py b/mopidy/__main__.py index a9649bd1..56953d50 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -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 = [] diff --git a/mopidy/config/__init__.py b/mopidy/config/__init__.py index 50f53290..a8ece9c1 100644 --- a/mopidy/config/__init__.py +++ b/mopidy/config/__init__.py @@ -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.