Source code for semi_cr.core.lab.station.context.config

from copy import deepcopy
from typing import Any


from semi_cr.core.lab.station.base import InstrumentSpec

[docs] def build_instrument_specs( config: dict[str, Any], ) -> dict[str, InstrumentSpec]: return { name: InstrumentSpec( name=name, type=instrument_config["type"], init=dict(instrument_config.get("init", {})), ) for name, instrument_config in config.get("instruments", {}).items() }
[docs] def normalize_qcodes_config( config: dict[str, Any], ) -> dict[str, Any]: normalized = deepcopy(config) for instrument_config in normalized.get( "instruments", {} ).values(): init = instrument_config.get("init", {}) devices = init.get("devices") if isinstance(devices, dict): init["devices"] = { str(getattr(device_id, "value", device_id)): device_config for device_id, device_config in devices.items() } return normalized