return None
def _str_import_value(self, value):
- if type(value) is not str:
+ if not isinstance(value, str):
raise ValueError('Value must be string')
self._assigned_value = value
return None
def import_value(self, value):
- if type(value) is not str:
+ if not isinstance(value, str):
raise ValueError('Value (type: %s) must be string' % type(value))
self._assigned_value = [x.strip() for x in value.split(',')]
class ComplexList(List):
def _check_value(self, value):
- if type(value) is not list:
+ if value is None:
+ return
+ if not isinstance(value, list):
raise ValueError('The value type must be a list, not "%s"' %
type(value))
return None
def import_value(self, value):
- if type(value) is not str:
+ if not isinstance(value, str):
raise ValueError('The value type must be a string, not "%s"' %
type(value))
jsonval = json.loads(value)
class MappingList(ComplexList):
def _check_value(self, value):
- if type(value) is not list:
+ if value is None:
+ return
+ if not isinstance(value, list):
raise ValueError('The value type must be a list, not "%s"' %
type(value))
for v in value:
- if type(v) is not list:
+ if not isinstance(v, list):
raise ValueError('Each element must be a list, not "%s"' %
type(v))
if len(v) != 2:
' not %d' % len(v))
def import_value(self, value):
- if type(value) is not str:
+ if not isinstance(value, str):
raise ValueError('Value (type: %s) must be string' % type(value))
jsonval = json.loads(value)
self.set_value(jsonval)
return '%s=%s' % (self.name, self.get_value())
def set_value(self, value):
- if type(value) is not list:
+ if not isinstance(value, list):
value = [value]
self._assigned_value = list()
for val in value:
self._assigned_value = None
def unset_value(self, value):
- if type(value) is str:
+ if isinstance(value, str):
value = [value]
unset = list()
for val in value:
def import_value(self, value):
self._assigned_value = value == 'True'
+
+
+class ConfigHelper(Log):
+
+ def __init__(self):
+ self._config = None
+
+ def new_config(self, name, *config_args):
+ self._config = Config(name, *config_args)
+
+ def get_config_obj(self):
+ if self._config is None:
+ raise AttributeError('Config not initialized')
+ return self._config
+
+ def import_config(self, config):
+ if not self._config:
+ raise AttributeError('Config not initialized, cannot import')
+
+ for key, value in config.iteritems():
+ if key in self._config:
+ self._config[key].import_value(str(value))
+
+ def export_config(self):
+ config = dict()
+ for name, option in self._config.iteritems():
+ config[name] = option.export_value()
+ return config
+
+ def get_config_value(self, name):
+ if not self._config:
+ raise AttributeError('Config not initialized')
+ return self._config[name].get_value()
+
+ def set_config_value(self, name, value):
+ if not self._config:
+ raise AttributeError('Config not initialized')
+ return self._config[name].set_value(value)