import ConfigParser class ConfError(Exception): pass class ConfNotAvailable(ConfError): pass class Conf: def __init__(self): self.conf = ConfigParser.ConfigParser() for section in ("db", "cache"): self.conf.add_section(section) def load(self, file): self.conf.readfp(file) def save(self, file): self.conf.write(file) def __get(self, section, key): try: return self.conf.get(section, key) except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): raise ConfNotAvailable def __get_int(self, section, key): try: return self.conf.getint(section, key) except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): raise ConfNotAvailable except ValueError: raise ConfError def __get_bool(self, section, key): try: return self.conf.getboolean(section, key) except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): raise ConfNotAvailable except ValueError: raise ConfError def __set(self, section, key, value): self.conf.set(section, key, value) def setDBtype(self, value): return self.__set("db", "type", value) def setDBformat(self, value): return self.__set("db", "format", value) def setDBhost(self, value): return self.__set("db", "host", value) def setDBport(self, value): return self.__set("db", "port", value) def setDBname(self, value): return self.__set("db", "name", value) def setDBuser(self, value): return self.__set("db", "user", value) def setDBpassword(self, value): return self.__set("db", "password", value) def enableCacheOnDisk(self): return self.__set("cache", "disk", "true") def setCacheMemory(self, value): return self.__set("cache", "memory", value) def getDBtype(self): return self.__get("db", "type") def getDBformat(self): return self.__get("db", "format") def getDBhost(self): return self.__get("db", "host") def getDBport(self): return self.__get_int("db", "port") def getDBname(self): return self.__get("db", "name") def getDBuser(self): return self.__get("db", "user") def getDBpassword(self): return self.__get("db", "password") def isCacheOnDiskEnabled(self): return self.__get_bool("cache", "disk") def getCacheMemory(self): return self.__get_int("cache", "memory")