diff --git a/src/qibolab/dummy/platform.py b/src/qibolab/dummy/platform.py index 26a2e6e58..c52430111 100644 --- a/src/qibolab/dummy/platform.py +++ b/src/qibolab/dummy/platform.py @@ -9,15 +9,13 @@ def create_dummy(): """Create a dummy platform using the dummy instrument.""" + # register the instruments instrument = DummyInstrument("dummy", "0.0.0.0") + twpa_pump = DummyLocalOscillator("twpa_pump", "0.0.0.0") - twpa_pump_name = "twpa_pump" - twpa_pump = DummyLocalOscillator(twpa_pump_name, "0.0.0.0") + platform = Platform.load(path=FOLDER, instruments=[instrument, twpa_pump]) - platform = Platform.load( - path=FOLDER, - instruments={instrument.name: instrument, twpa_pump.name: twpa_pump}, - ) + # attach the channels for q, qubit in platform.qubits.items(): acquisition_name = f"qubit_{q}/acquire" probe_name = f"qubit_{q}/probe" @@ -25,7 +23,7 @@ def create_dummy(): probe_name, mixer=None, lo=None, acquisition=acquisition_name ) qubit.acquisition = AcquireChannel( - acquisition_name, twpa_pump=twpa_pump_name, probe=probe_name + acquisition_name, twpa_pump=twpa_pump.name, probe=probe_name ) drive_name = f"qubit_{q}/drive" diff --git a/src/qibolab/platform/platform.py b/src/qibolab/platform/platform.py index 4fbb27611..d6343a56b 100644 --- a/src/qibolab/platform/platform.py +++ b/src/qibolab/platform/platform.py @@ -2,10 +2,11 @@ import json from collections import defaultdict +from collections.abc import Iterable from dataclasses import dataclass, field from math import prod from pathlib import Path -from typing import Any, Literal, Optional, TypeVar +from typing import Any, Literal, Optional, TypeVar, Union from qibo.config import log, raise_error @@ -322,10 +323,17 @@ def execute( return results @classmethod - def load(cls, path: Path, instruments: InstrumentMap, name: Optional[str] = None): + def load( + cls, + path: Path, + instruments: Union[InstrumentMap, Iterable[Instrument]], + name: Optional[str] = None, + ): """Dump platform.""" if name is None: name = path.name + if not isinstance(instruments, dict): + instruments = {i.name: i for i in instruments} return cls( name=name,