from abc import ABC, abstractmethod from typing import Any from aarecommon.math.beam_center import BeamCenterFromDetectorStage class AuthDispatch(ABC): @abstractmethod def get_jwt_key(self) -> str: ... class BecMacros(ABC): @staticmethod @abstractmethod def save_and_reload() -> tuple[Any, Any]: ... @staticmethod @abstractmethod def save_current_position(device, position, axis=None, force=False, max_delta=0.5) -> None: ... @staticmethod @abstractmethod def init_beamline_environment() -> tuple[Any, Any, Any]: ... @staticmethod @abstractmethod def bl_energy(energy_ev, move_gap=True, mono_scan=True, plot=True): ... @staticmethod @abstractmethod def get_current_energy(): ... @staticmethod @abstractmethod def mono_pitch_scan(plot=True): ... @staticmethod @abstractmethod def auto_exposure(): ... class Geometry(ABC): @property @abstractmethod def beam_centre_model(self) -> BeamCenterFromDetectorStage: ... class BeamlineDispatch(ABC): @property @abstractmethod def auth(self) -> AuthDispatch: ... @property @abstractmethod def bec_macros(self) -> BecMacros: ... @property @abstractmethod def geo(self) -> Geometry: ...