prieto 9 years ago
parent
commit
ee795f539d
1 changed files with 21 additions and 12 deletions
  1. 21
    12
      lodel/settings/settings_loader.py

+ 21
- 12
lodel/settings/settings_loader.py View File

56
     # @return the option
56
     # @return the option
57
     def getoption(self,section,keyname,validator,default_value=None,mandatory=False):
57
     def getoption(self,section,keyname,validator,default_value=None,mandatory=False):
58
         conf=copy.copy(self.__conf)
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
         else:
75
         else:
71
-             return default_value
76
+            return default_value
72
     ##@brief Sets option in a config section. Writes in the conf file
77
     ##@brief Sets option in a config section. Writes in the conf file
73
     # @param section str : name of the section
78
     # @param section str : name of the section
74
     # @param keyname str
79
     # @param keyname str
77
     # @return the option
82
     # @return the option
78
     def setoption(self,section,keyname,value,validator):
83
     def setoption(self,section,keyname,value,validator):
79
         f_conf=copy.copy(self.__conf[section][keyname]['file'])
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
         config = configparser.ConfigParser()
89
         config = configparser.ConfigParser()
81
         config.read(f_conf)
90
         config.read(f_conf)
82
         config[section][keyname] = validator(value)
91
         config[section][keyname] = validator(value)

Loading…
Cancel
Save