Source code for blissoda.bm02.utils
import os.path
from pathlib import Path
from typing import Literal
from typing import Union
import h5py
from silx.io.url import DataUrl
from ..bliss_globals import current_session
from ..bliss_globals import setup_globals
from ..processor import BlissScanType
from ..utils.directories import get_filename
[docs]
def export_filename_prefix(scan: BlissScanType, lima_name: str) -> str:
scan_filename = Path(get_filename(scan))
scan_nb = scan.scan_info.get("scan_nb")
return f"{scan_filename.stem}_s{scan_nb:04d}_{lima_name}"
[docs]
def get_current_filename() -> str:
return current_session.scan_saving.filename
[docs]
def subtracted_nxprocess_name(lima_name: str) -> str:
return f"{lima_name}_integrate_subtracted"
[docs]
def assert_url_exists(url: str) -> None:
data_url = DataUrl(url)
if not os.path.exists(data_url.file_path()):
raise FileNotFoundError(f"{data_url.file_path()} does not exist")
with h5py.File(data_url.file_path(), "r") as h5file:
if data_url.data_path() not in h5file:
raise FileNotFoundError(
f"{data_url.data_path()} does not exist in {data_url.file_path()}"
)
[docs]
def get_energy(energy: Union[Literal["auto"], float, None]):
if energy is None:
return None
if energy == "auto":
return setup_globals.getE()
return energy