class Config(object):
def __init__(self, filename, writeout=True):
- self.__dict__['config'] = ConfigParser.SafeConfigParser()
+ self.__dict__['config'] = ConfigParser.RawConfigParser()
self.__dict__['filename'] = filename
self.__dict__['writeout'] = writeout
self.config.read(filename)
def __setattr__(self, key, value):
self.config.set('erebus', key, value)
+ def __getitem__(self, section): #!! READ-ONLY !!
+ return {item: self.config.get(section, item) for item in self.config.options(section)}
+
def level(self, cmd):
return self.config.get('levels', cmd)
return self.config.get(section, key)
except:
return default
+ def getboolean(self, section, key):
+ val = self.get(section, key, False)
+ if val == False or val == "0" or val.lower() == "false" or val.strip() == "":
+ return False
+ else:
+ return True
def set(self, section, key, value):
self.config.set(section, key, value)
def __del__(self):
if self.writeout: self.write()
+def setup(fn='bot.config', writeout=True):
+ return Config(fn, writeout)
if __name__ == '__main__':
import sys
cfg = Config(sys.argv[1], False)
- for k, v in cfg.items():
- print k, '=', v
+ for s in cfg.config.sections():
+ for k, v in cfg.items(s):
+ print "[%r][%r] = %r" % (s, k, v)
+# for k, v in cfg.items():
+# print 'erebus.'+k, '=', v