diff --git a/src/tools/config.py b/src/tools/config.py index 1a6c7c67..c598c2f9 100644 --- a/src/tools/config.py +++ b/src/tools/config.py @@ -30,6 +30,7 @@ from ConfigParser import SafeConfigParser, DEFAULTSECT, NoOptionError, NoSection from xdg import BaseDirectory import os import csv +import json def fixConfigOption(section, option, value, silent=True): @@ -94,6 +95,7 @@ def getConfig(config, section, name, default=None): elif name.endswith('_list'): value = csv.reader([value], delimiter=',', quotechar='"', skipinitialspace=True).next() elif name.endswith('_dict'): - value = dict(csv.reader([item], delimiter=':', quotechar='"', skipinitialspace=True).next() - for item in csv.reader([value], delimiter=',', quotechar='"', skipinitialspace=True).next()) + value = json.loads(value) + if not isinstance(value, dict): + raise ValueError(u"{name} value is not a dict: {value}".format(name=name, value=value)) return value