diff options
Diffstat (limited to 'src/config.py')
-rw-r--r-- | src/config.py | 55 |
1 files changed, 40 insertions, 15 deletions
diff --git a/src/config.py b/src/config.py index 8237c7b7..1b9ba287 100644 --- a/src/config.py +++ b/src/config.py @@ -18,6 +18,11 @@ # You should have received a copy of the GNU General Public License # along with Poezio. If not, see <http://www.gnu.org/licenses/>. +""" +Defines the global config instance, used to get or set (and save) values +from/to the config file +""" + from ConfigParser import RawConfigParser, NoOptionError from os import environ, makedirs from shutil import copy2 @@ -39,7 +44,7 @@ class Config(RawConfigParser): The type of default defines the type returned """ - try: + try: if type(default) == int: res = self.getint(option) elif type(default) == float: @@ -52,45 +57,65 @@ class Config(RawConfigParser): return default return res - def _get(self, option): + def __get(self, option): + """ + facility for RawConfigParser.get + """ return RawConfigParser.get(self, self.defsection, option) def getstr(self, option): - return self._get(option) + """ + get a value and returns it as a string + """ + return self.__get(option) def getint(self, option): + """ + get a value and returns it as an int + """ try: - return int(self._get(option)) + return int(self.__get(option)) except ValueError: return -1 def getfloat(self, option): - return float(self._get(option)) + """ + get a value and returns it as a float + """ + return float(self.__get(option)) def getboolean(self, option): + """ + get a value and returns it as a boolean + """ return RawConfigParser.getboolean(self, self.defsection, option) - def set(self, option, value): - RawConfigParser.set(self, self.defsection, option, value) - def save(self): - f = open(self.file_name, "w") - RawConfigParser.write(self, f) - f.close() + """ + save the configuration in the file + """ + fdes = open(self.file_name, "w") + RawConfigParser.write(self, fdes) + fdes.close() def set_and_save(self, option, value): - self.set(option, value) + """ + set the value in the configuration then save it + to the file + """ + RawConfigParser.set(self, self.defsection, option, value) self.save() +# creates the configuration directory if it doesn't exist +# and copy the default config in it CONFIG_HOME = environ.get("XDG_CONFIG_HOME") if not CONFIG_HOME: CONFIG_HOME = environ.get('HOME')+'/.config' CONFIG_PATH = CONFIG_HOME + '/poezio/' - try: makedirs(CONFIG_PATH) copy2('../data/default_config.cfg', CONFIG_PATH+'poezio.cfg') -except:pass - +except OSError: + pass config = Config(CONFIG_PATH+'poezio.cfg') |