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