def sector_percentages(xml): ret = [] for ele in xml: sp = SectorPercentage() if ele.xpath("@code") and xval(ele, "@code") in cl.Sector.values(): sp.sector = cl.Sector.from_string(xval(ele, "@code")) if ele.xpath("@vocabulary"): sp.vocabulary = cl.Vocabulary.from_string(xval(ele, "@vocabulary")) if ele.xpath("@percentage"): sp.percentage = int(xval(ele, "@percentage")) if any(getattr(sp, attr) for attr in "sector vocabulary percentage".split()): ret.append(sp) return ret