ems/src/config.py

70 lines
2.3 KiB
Python
Raw Normal View History

'''
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()