castep_qpm_suffixes = ('.phonon',)
castep_fc_suffixes = ('.castep_bin', '.check')
phonopy_suffixes = ('.hdf5', '.yaml', '.yml')
path = Path(filename)
match path.suffix:
case '.phonon' if frequencies_only:
data = QpointFrequencies.from_castep(path)
case '.phonon':
data = QpointPhononModes.from_castep(path)
case '.castep_bin' | '.check':
data = ForceConstants.from_castep(path)
case '.json':
data = _load_euphonic_json(path, frequencies_only)
case '.hdf5' | '.yaml' | '.yml':
data = _load_phonopy_file(path, frequencies_only)
case _:
msg = format_error(
f'File format ({path.suffix}) not recognised.',
reason=f"""
CASTEP force constants data for
import should have extension from {castep_fc_suffixes}, CASTEP
phonon mode data for import should have extension
'{castep_qpm_suffixes}', data from Phonopy should have extension
from {phonopy_suffixes}, data from Euphonic should have extension
'.json'.""",
fix='Ensure file format in known formats.',
)
raise ValueError(msg)
Originally posted by @oerc0122 in #481 (comment)