diff options
| author | 2019-10-04 10:25:48 +0100 | |
|---|---|---|
| committer | 2019-10-04 10:25:48 +0100 | |
| commit | 3466a3c43e50cf6fc55636352b82eab3f407c7f3 (patch) | |
| tree | 581634fbe538e4e0772f7eaacb0be01811ea559d /modules/config.py | |
| parent | check that `third_words` isn't empty (diff) | |
| signature | ||
Allow utils.Setting_ parse functions to throw detailed errors
Diffstat (limited to 'modules/config.py')
| -rw-r--r-- | modules/config.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/modules/config.py b/modules/config.py index 97638a93..5b76f376 100644 --- a/modules/config.py +++ b/modules/config.py @@ -7,7 +7,8 @@ import enum from src import ModuleManager, utils class ConfigInvalidValue(Exception): - pass + def __init__(self, message: str=None): + self.message = message class ConfigSettingInexistent(Exception): pass @@ -113,7 +114,11 @@ class Module(ModuleManager.BaseModule): def _config(self, export_settings, target, setting, value=None): if not value == None: - validated_value = export_settings[setting].parse(value) + try: + validated_value = export_settings[setting].parse(value) + except utils.SettingParseException as e: + raise ConfigInvalidValue(str(e)) + if not validated_value == None: target.set_setting(setting, validated_value) return ConfigResult(ConfigResults.Changed, validated_value) @@ -199,7 +204,10 @@ class Module(ModuleManager.BaseModule): try: result = self._config(export_settings, target, setting, value) - except ConfigInvalidValue: + except ConfigInvalidValue as e: + if not e.message == None: + raise utils.EventError("Invalid value: %s" % e.message) + example = export_settings[setting].get_example() if not example == None: raise utils.EventError("Invalid value. %s" % |
