Source code for aiida_quantumespresso.parsers.parse_xml.pw.parse

# -*- coding: utf-8 -*-
from xml.etree import ElementTree

from aiida_quantumespresso.parsers.parse_xml.exceptions import XMLParseError
from aiida_quantumespresso.parsers.parse_xml.parse import parse_xml_post_6_2
from aiida_quantumespresso.parsers.parse_xml.versions import QeXmlVersion, get_xml_file_version

from .legacy import parse_pw_xml_pre_6_2


[docs]def parse_xml(xml_file, dir_with_bands=None): try: xml_parsed = ElementTree.parse(xml_file) except ElementTree.ParseError: raise XMLParseError('error while parsing XML file') xml_file_version = get_xml_file_version(xml_parsed) if xml_file_version == QeXmlVersion.POST_6_2: parsed_data, logs = parse_xml_post_6_2(xml_parsed) elif xml_file_version == QeXmlVersion.PRE_6_2: xml_file.seek(0) parsed_data, logs = parse_pw_xml_pre_6_2(xml_file, dir_with_bands) return parsed_data, logs