import yaml from PyQt5.QtCore import QSettings from pathlib import Path import logging logger = logging.getLogger(__name__) settings = QSettings("Paul Scherrer Institut", "SwissMX") inst_folder = Path(__file__).absolute().parent config_file = inst_folder / "swissmx.yaml" configs = yaml.load(config_file.read_text(),Loader=yaml.FullLoader) endstation = configs["configure_for"] appsconf = configs[endstation] simulated = appsconf.get("simulate", False) logger.info(f"configuring for endstation: {endstation.upper()}") if simulated: logger.warning("SIMULATION is ACTIVE") css_file = inst_folder / "swissmx.css" def font(name: str) -> str: p = Path(__file__).absolute().parent / "fonts" / name return str(p) def logo(size: int = 0) -> str: p = Path(__file__).absolute().parent / "logos" / "logo.png" if size: p = Path(__file__).absolute().parent / "logos" / f"tell_logo_{size}x{size}.png" return str(p) def option(key: str) -> bool: try: return settings.value(key, type=bool) except: logger.error(f"option {key} not known") return False def toggle_option(key: str): v = settings.value(key, type=bool) settings.setValue(key, not v) settings.sync()