import os.path import xml.etree.cElementTree as xml class ConfigFile(object): """ config file class """ def __init__(self): """Configuration file is in local user folder""" self.config_file = os.path.join(os.path.expanduser('~'), 'playgroundconfig.xml') # default tag names self.root_tag = 'playground' self.user_tag = 'user' self.db_tag = 'database' def exists(self): """Check if config file exists """ return os.path.isfile(self.config_file) def create(self): """Create new config file """ # a config file has 3 tags # : root tag # : user name tag # : database(s) tag # (for this version only one database supported) root = xml.Element(self.root_tag) user = xml.SubElement(root, self.user_tag) db = xml.SubElement(root, self.db_tag) tree = xml.ElementTree(root) try: tree.write(self.config_file) return True except IOError: return False def set_user(self, name): # set user name # NO ERROR CHECKING !!! xmlfile = xml.parse(self.config_file) root = xmlfile.getroot() user = root.find(self.user_tag) user.text = name tree = xml.ElementTree(root) tree.write(self.config_file) def set_database(self, dbpath): # set database path # NO ERROR CHECKING !!! xmlfile = xml.parse(self.config_file) root = xmlfile.getroot() path = root.find(self.db_tag) path.text = dbpath tree = xml.ElementTree(root) tree.write(self.config_file)