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)