"""XML File utilities.""" from xml.etree import ElementTree CURRENCY_NUMBER_FIELD = 'CcyNbr' CURRENCY_NAME_FIELD = 'CcyNm' CURRENCY_CODE_FIELD = 'Ccy' CURRENCY_COUNTRY_FIELD = 'CtryNm' def yield_currencies(file_path, xml_path): """Yield currency data from XML.""" tree = ElementTree.parse(file_path) root = tree.getroot() for child in root.findall(xml_path): try: currency_number = int(child.findtext(CURRENCY_NUMBER_FIELD)) except TypeError: currency_number = 0 yield { 'currency_name': child.findtext(CURRENCY_NAME_FIELD), 'country_name': child.findtext(CURRENCY_COUNTRY_FIELD), 'currency_number': currency_number, 'currency_code': child.findtext(CURRENCY_CODE_FIELD) }