''' 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', '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") error = False except IOError: error = True if error: 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 val[0] = val[0].strip() val[0] = True if val[0] == 'True' else val[0] val[0] = False if val[0] == 'False' else val[0] self._confDic[ident[0]] = val[0] confFile.close() self._confDic['config_read'] = True if self._confDic['config_debug']: print ('config:\t', self._confDic) return self._confDic