|
@@ -56,19 +56,24 @@ class SettingsLoader(object):
|
56
|
56
|
# @return the option
|
57
|
57
|
def getoption(self,section,keyname,validator,default_value=None,mandatory=False):
|
58
|
58
|
conf=copy.copy(self.__conf)
|
59
|
|
- sec=conf[section]
|
60
|
|
- if keyname in sec:
|
61
|
|
- optionstr=sec[keyname]['value']
|
62
|
|
- option=validator(sec[keyname])['value']
|
63
|
|
- try:
|
64
|
|
- del self.__conf_sv[section + ':' + keyname]
|
65
|
|
- except KeyError: #allready fetched
|
66
|
|
- pass
|
67
|
|
- return option
|
68
|
|
- elif mandatory:
|
69
|
|
- raise SettingsError("Default value mandatory for option %s" % keyname)
|
|
59
|
+ if section in conf:
|
|
60
|
+ sec=conf[section]
|
|
61
|
+ if keyname in sec:
|
|
62
|
+ optionstr=sec[keyname]['value']
|
|
63
|
+ option=validator(sec[keyname])['value']
|
|
64
|
+ try:
|
|
65
|
+ del self.__conf_sv[section + ':' + keyname]
|
|
66
|
+ except KeyError: #allready fetched
|
|
67
|
+ pass
|
|
68
|
+ return option
|
|
69
|
+ elif default_value is None and mandatory:
|
|
70
|
+ raise SettingsError("Default value mandatory for option %s" % keyname)
|
|
71
|
+ sec['keyname']=dict()
|
|
72
|
+ sec['keyname']['value'] = default_value
|
|
73
|
+ sec['keyname']['file'] = 'default_value'
|
|
74
|
+ return default_value
|
70
|
75
|
else:
|
71
|
|
- return default_value
|
|
76
|
+ return default_value
|
72
|
77
|
##@brief Sets option in a config section. Writes in the conf file
|
73
|
78
|
# @param section str : name of the section
|
74
|
79
|
# @param keyname str
|
|
@@ -77,6 +82,10 @@ class SettingsLoader(object):
|
77
|
82
|
# @return the option
|
78
|
83
|
def setoption(self,section,keyname,value,validator):
|
79
|
84
|
f_conf=copy.copy(self.__conf[section][keyname]['file'])
|
|
85
|
+ conf=self.__conf
|
|
86
|
+ conf[section][keyname] = value
|
|
87
|
+ if f_conf == 'default_value':
|
|
88
|
+ f_conf = self.conf_path + '/generated.ini'
|
80
|
89
|
config = configparser.ConfigParser()
|
81
|
90
|
config.read(f_conf)
|
82
|
91
|
config[section][keyname] = validator(value)
|