Source code for boltz_data.mol._from._from_path

from pathlib import Path

from boltz_data import fs
from boltz_data.cif import read_single_cif_from_file
from boltz_data.mol._from._from_mmcif import bzmol_from_mmcif
from boltz_data.mol._mol import BZBioMol, BZMol


[docs] def bzmol_from_path(path: str | Path, /) -> BZBioMol | BZMol: match extension := fs.get_extension(path, ignore_compression=True): case ".cbor" | ".yml" | ".yaml" | ".json" | ".pkl": return fs.read_object(path, as_=BZBioMol | BZMol) # type: ignore[no-any-return, call-overload] case ".cif": return bzmol_from_mmcif(read_single_cif_from_file(path)) case _: msg = f"Unsupported file extension: {extension}" raise ValueError(msg)