def parseConditions(self, root): """ return an array of Condition objects for example, from <condition alias='C30'> <variable name='gamma irradiation' value='false'/> <variable name='time' value='30' units='minutes'/> </condition> <condition alias='G0'> <variable name='gamma irradiation' value='true'/> <variable name='time' value='0' units='minutes'/> </condition> string representation of the two resulting condition objects: [note that no units ('None') are specified for irradiation] condition: C30, gamma irradiation: false, None, time: 30, minutes condition: G0 gamma irradiation: true, None time: 0, minutes """ conditionElements = root.getChildren("condition") result = [] # use an array so that conditions can be stored in the # order in which they appear in the file, which may # reflect an order the user carefully created for c in conditionElements: alias = c.getAttribute("alias").value assert alias condition = Condition(alias) for v in c.getChildren("variable"): name = v.getAttribute("name").value value = v.getAttribute("value").value unitsAttribute = v.getAttribute("units") units = None if unitsAttribute: units = unitsAttribute.value condition.addVariable(Variable(name, value, units)) result.append(condition) return result