Source code for aiida_phonopy.parsers.raw_parsers.phonopy
# -*- coding: utf-8 -*-
"""Raw parsers of the phonopy output files."""
from aiida_phonopy.utils.mapping import get_logging_container
[docs]def parse_stdout(stdout):
"""Raw parser of the phonopy std output.
:param stdout: str of the std output of phonopy
:returns: tuple of two dictionaries, with the parsed data and log messages, respectively
"""
stdout_lines = stdout.splitlines()
logs = get_logging_container()
parsed_data = {}
is_incomplete = True
for line in stdout_lines:
if 'Python' in line:
parsed_data.update({'python_version': line.split()[-1]})
if 'Spglib' in line:
parsed_data.update({'spglib_version': line.split()[-1]})
if 'One of the following run modes may be specified for phonon calculations.' in line:
logs.error.append('ERROR_BAD_INPUTS')
if 'Summary of calculation was written in "phonopy.yaml".' in line:
is_incomplete = False
if is_incomplete:
logs.error.append('ERROR_OUTPUT_STDOUT_INCOMPLETE')
return parsed_data, logs