# Erebus IRC bot - Author: John Runyon
+# vim: fileencoding=utf-8
# "Config" class (reading/providing access to bot.config)
from __future__ import print_function
-import sys
+import sys, os
if sys.version_info.major < 3:
import ConfigParser
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":
+ def getint(self, section, key, default=0):
+ try:
+ return int(self.config.get(section, key))
+ except:
+ return default
+ def getboolean(self, section, key, default=False):
+ val = self.get(section, key, default)
+ if type(val) is bool:
+ return val
+ elif val == "0" or val.lower() == "false":
return False
else:
return True
def set(self, section, key, value):
- self.config.set(section, key, value)
+ if not self.config.has_section(section):
+ self.config.add_section(section)
+ self.config.set(section, key, str(value))
+ if self.writeout: self.write()
+
+ def delete(self, section, key):
+ if self.config.has_section(section):
+ self.config.remove_option(section, key)
if self.writeout: self.write()
def write(self):
- with open(self.filename, 'wb') as configfile:
+ with open(self.filename+'.tmp', 'w') as configfile:
self.config.write(configfile)
+ os.rename(configfile.name, self.filename)
def __del__(self):
if self.writeout: self.write()