''' Created on 21.11.2013 @author: rauchp ''' class Config(): _instance = None _confDic = { 'mySQL_server': 'localhost', 'mySQL_port': '3306', 'mySQL_user': 'smoke', 'mySQL_pass': 'KiWujcafAlor', 'mySQL_database': 'smoke_test', #'mySQL_table': 'battery', 'mySQL_speed' : '0.1', 'flask_server': '0.0.0.0', 'flask_port': '5000', 'flask_debug': False, 'config_debug' : False, 'config_read' : False } def __new__(cls, *args, **kwargs): # http://stackoverflow.com/questions/42558/python-and-the-singleton-pattern if not cls._instance: cls._instance = super(Config, cls).__new__( cls, *args, **kwargs) return cls._instance def readConf(self): if self._confDic['config_read']: return self._confDic try: confFile = open("config\ems.conf", "r") except IOError: self._confDic.update({'error' : 'config/ems.conf not found'}) return self._confDic for line in confFile: line = line.strip() if len(line) > 0 and not line[0] == "#": ident = line.split("=") for i in range(len(ident)): ident[i] = ident[i].strip() val = ident[1].split("#") #cut off comments #comment is on val[1] argument = str(val[0].strip()).split(',') arg = [] for a in argument: a.strip() a = True if a == 'True' else a a = False if a == 'False' else a arg.append(a) self._confDic[ident[0]] = arg if len(arg) > 1 else arg[0] confFile.close() self._confDic['config_read'] = True if self._confDic['config_debug']: print 'config:\t{' for x in self._confDic: print ' ', x, '\t:', self._confDic[x] print ' }' return self._confDic #c = Config() #conf = c.readConf()