summaryrefslogtreecommitdiff
path: root/src/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.py')
-rw-r--r--src/config.py55
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')