import xml.etree.ElementTree as XMLParser class XMLSetup (object): """XML Setup Parser""" __tree = None # Parser __dbType = None # database connection required: PgSQLConnection __dbConnectionRaw = None # Connection string in raw __dbConnectionStr = None # Connection string to use in sql object connection def __init__(self, filename): """Parse the file in the constructor""" self.__tree = XMLParser.parse(filename) def __del__(self): """Destructor do nothing""" pass def getdbConnectionStr(self): """XML to database connection string""" if self.__dbConnectionRaw is not None: return self.__dbConnectionRaw for element in self.__tree.iter('db'): self.__dbConnectionRaw = element.attrib self.__dbType = self.__dbConnectionRaw['type'] if self.__dbType == "PgSQLConnection": self.__dbConnectionStr = self.getPostgresConnectionStr() return self.__dbConnectionStr return None def getPostgresConnectionStr(self): """Get Connection string """ str = self.__dbConnectionRaw del str['type'] return str def getBoard(self, key, default): for element in self.__tree.iter('board'): if key in element.attrib: return element.attrib[key] return default def getTempPath(self, key, default): for element in self.__tree.iter('tmpPath'): if key in element.attrib: return element.attrib[key] return default def getKeyVal(self, tag, key, default): for element in self.__tree.iter(tag): if key in element.attrib: return element.attrib[key] return default def gettagKey (self, xmltag, xmlkey): """aaaaa""" for element in self.__tree.iter(xmltag): return element.attrib[xmlkey] return None def getUSBlist(self): list = {} count = 0 for elements in self.__tree.iter("usbdev"): sublist = {} for key,val in elements.items(): sublist[key] = val list[count] = sublist count += 1 return list