boulder-opal-scale-up-sdk 1.0.7__py3-none-any.whl → 1.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {boulder_opal_scale_up_sdk-1.0.7.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/METADATA +4 -6
- {boulder_opal_scale_up_sdk-1.0.7.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/RECORD +38 -35
- boulderopalscaleupsdk/common/dtypes.py +7 -5
- boulderopalscaleupsdk/device/controller/qblox.py +149 -52
- boulderopalscaleupsdk/device/device.py +0 -1
- boulderopalscaleupsdk/device/processor/superconducting_processor.py +21 -1
- boulderopalscaleupsdk/experiments/chi01_scan.py +1 -1
- boulderopalscaleupsdk/experiments/cz_spectroscopy_by_bias.py +29 -48
- boulderopalscaleupsdk/experiments/drag_leakage_calibration.py +1 -4
- boulderopalscaleupsdk/experiments/fine_amplitude_calibration.py +4 -3
- boulderopalscaleupsdk/experiments/power_rabi.py +2 -2
- boulderopalscaleupsdk/experiments/power_rabi_ef.py +2 -2
- boulderopalscaleupsdk/experiments/ramsey.py +1 -1
- boulderopalscaleupsdk/experiments/ramsey_ef.py +1 -1
- boulderopalscaleupsdk/experiments/readout_classifier.py +2 -2
- boulderopalscaleupsdk/experiments/readout_optimization.py +3 -3
- boulderopalscaleupsdk/experiments/resonator_spectroscopy.py +1 -1
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_bias.py +2 -2
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_power.py +1 -1
- boulderopalscaleupsdk/experiments/t1.py +1 -1
- boulderopalscaleupsdk/experiments/t2.py +1 -1
- boulderopalscaleupsdk/experiments/t2_echo.py +1 -1
- boulderopalscaleupsdk/experiments/transmon_anharmonicity.py +1 -1
- boulderopalscaleupsdk/experiments/transmon_spectroscopy.py +2 -2
- boulderopalscaleupsdk/experiments/voltage_bias_fine_tune.py +7 -5
- boulderopalscaleupsdk/experiments/zz_ramsey.py +8 -14
- boulderopalscaleupsdk/plotting/dtypes.py +1 -1
- boulderopalscaleupsdk/protobuf/v1/device_pb2.py +33 -39
- boulderopalscaleupsdk/protobuf/v1/device_pb2.pyi +0 -14
- boulderopalscaleupsdk/protobuf/v1/device_pb2_grpc.py +0 -34
- boulderopalscaleupsdk/protobuf/v1/resource_pb2.py +40 -0
- boulderopalscaleupsdk/protobuf/v1/resource_pb2.pyi +52 -0
- boulderopalscaleupsdk/protobuf/v1/resource_pb2_grpc.py +104 -0
- boulderopalscaleupsdk/routines/coupler_discovery.py +4 -4
- boulderopalscaleupsdk/routines/one_qubit_calibration.py +4 -0
- boulderopalscaleupsdk/routines/resonator_mapping.py +1 -1
- {boulder_opal_scale_up_sdk-1.0.7.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/LICENSE +0 -0
- {boulder_opal_scale_up_sdk-1.0.7.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/WHEEL +0 -0
@@ -15,70 +15,51 @@ from typing import Literal
|
|
15
15
|
|
16
16
|
from pydantic import PrivateAttr
|
17
17
|
|
18
|
-
from .common import Experiment
|
19
|
-
|
20
|
-
DEFAULT_PREP_PADDING_NS = 16
|
21
|
-
DEFAULT_MEASUREMENT_PADDING_NS = 16
|
22
|
-
DEFAULT_MIN_DURATION_NS = 16
|
23
|
-
DEFAULT_MAX_DURATION_NS = 200
|
24
|
-
DEFAULT_TIME_STEP_NS = 8
|
25
|
-
DEFAULT_RECYCLE_DELAY_NS = 500_000
|
26
|
-
DEFAULT_SHOT_COUNT = 200
|
18
|
+
from .common import Experiment, LinspaceIterable, RangeIterable
|
27
19
|
|
28
20
|
|
29
21
|
class CZSpectroscopyByBias(Experiment):
|
30
22
|
"""
|
31
|
-
Parameters for running a
|
23
|
+
Parameters for running a CZ spectroscopy by bias experiment.
|
32
24
|
|
33
|
-
|
25
|
+
Attributes
|
34
26
|
----------
|
35
27
|
control_transmon : str
|
36
|
-
The
|
28
|
+
The reference for the transmon to use as control.
|
37
29
|
target_transmon : str
|
38
|
-
The
|
39
|
-
|
40
|
-
The
|
41
|
-
|
42
|
-
The
|
43
|
-
|
44
|
-
The
|
45
|
-
|
46
|
-
|
47
|
-
max_duration_ns : int
|
48
|
-
The maximum duration for the pulse in the experiment, in nanoseconds.
|
49
|
-
duration_step_ns : int
|
50
|
-
The step size for the duration, in nanoseconds.
|
51
|
-
prep_padding_ns : int
|
30
|
+
The reference for the transmon to use as target.
|
31
|
+
vps : LinspaceIterable
|
32
|
+
The voltage points to sample, in volts.
|
33
|
+
coupler_flux_vp : float
|
34
|
+
The flux voltage point for the coupler, in volts.
|
35
|
+
durations_ns : RangeIterable, optional
|
36
|
+
The pulse durations to sample, in nanoseconds.
|
37
|
+
Defaults to RangeIterable(start=16, stop=200, step=8).
|
38
|
+
prep_padding_ns : int, optional
|
52
39
|
The padding to apply before the CZ pulse, in nanoseconds.
|
53
|
-
|
40
|
+
Defaults to 16 ns.
|
41
|
+
measurement_padding_ns : int, optional
|
54
42
|
The padding to apply after the CZ pulse, in nanoseconds.
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
43
|
+
Defaults to 16 ns.
|
44
|
+
recycle_delay_ns : float, optional
|
45
|
+
The delay between consecutive shots, in nanoseconds.
|
46
|
+
Defaults to 500,000 ns.
|
47
|
+
shot_count : int, optional
|
48
|
+
The number of shots to take.
|
60
49
|
Defaults to 200.
|
61
|
-
|
62
|
-
|
63
|
-
spectroscopy_waveform : ConstantWaveform
|
64
|
-
The waveform to use in the spectroscopy pulse.
|
50
|
+
update : "auto" or "off" or "prompt", optional
|
51
|
+
How the device should be updated after an experiment run. Defaults to auto.
|
65
52
|
"""
|
66
53
|
|
67
54
|
_experiment_name: str = PrivateAttr("cz_spectroscopy_by_bias")
|
68
55
|
|
69
56
|
control_transmon: str
|
70
57
|
target_transmon: str
|
71
|
-
|
72
|
-
min_vp: float
|
73
|
-
max_vp: float
|
74
|
-
num_vp: int
|
58
|
+
vps: LinspaceIterable
|
75
59
|
coupler_flux_vp: float
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
82
|
-
shot_count: int = DEFAULT_SHOT_COUNT
|
83
|
-
batch_analysis: bool = False
|
60
|
+
durations_ns: RangeIterable = RangeIterable(start=16, stop=200, step=8)
|
61
|
+
prep_padding_ns: int = 16
|
62
|
+
measurement_padding_ns: int = 16
|
63
|
+
recycle_delay_ns: int = 500_000
|
64
|
+
shot_count: int = 200
|
84
65
|
update: Literal["auto", "off", "prompt"] = "auto"
|
@@ -27,7 +27,7 @@ class DragLeakageCalibration(Experiment):
|
|
27
27
|
----------
|
28
28
|
transmon : str
|
29
29
|
The reference for the transmon to target.
|
30
|
-
recycle_delay_ns : int
|
30
|
+
recycle_delay_ns : int, optional
|
31
31
|
The delay between consecutive shots, in nanoseconds. Defaults to 10,000 ns.
|
32
32
|
shot_count : int, optional
|
33
33
|
The number of shots to take. Defaults to 1,000.
|
@@ -40,8 +40,6 @@ class DragLeakageCalibration(Experiment):
|
|
40
40
|
anharmonicity : float or None, optional
|
41
41
|
The anharmonicity of the transmon, in Hz.
|
42
42
|
Defaults to None, in which case the anharmonicity of the transmon will be used.
|
43
|
-
drag_guess : float
|
44
|
-
Initial guess for the DRAG parameter.
|
45
43
|
update : "auto" or "off" or "prompt", optional
|
46
44
|
How the device should be updated after an experiment run. Defaults to auto.
|
47
45
|
"""
|
@@ -55,7 +53,6 @@ class DragLeakageCalibration(Experiment):
|
|
55
53
|
repetitions: list[int]
|
56
54
|
gate: Literal["x", "sx"]
|
57
55
|
anharmonicity: float | None = None
|
58
|
-
drag_guess: float
|
59
56
|
update: Literal["auto", "off", "prompt"] = "auto"
|
60
57
|
|
61
58
|
@field_validator("alphas")
|
@@ -30,12 +30,13 @@ class FineAmplitudeCalibration(Experiment):
|
|
30
30
|
The reference for the transmon to target.
|
31
31
|
gate : Literal["sx", "x"]
|
32
32
|
The gate to be calibrated.
|
33
|
-
repetitions : list[int]
|
33
|
+
repetitions : list[int], optional
|
34
34
|
List of repetition counts for the calibration experiment.
|
35
|
-
|
35
|
+
Defaults to every fourth number from 0 to 100.
|
36
|
+
recycle_delay_ns : int, optional
|
36
37
|
The delay between consecutive shots, in nanoseconds. Defaults to 10,000 ns.
|
37
38
|
shot_count : int, optional
|
38
|
-
The number of shots to take. Defaults to
|
39
|
+
The number of shots to take. Defaults to 1,000.
|
39
40
|
measure_waveform : ConstantWaveform or None, optional
|
40
41
|
The waveform to use for the measurement pulse.
|
41
42
|
Defaults to the measurement defcal.
|
@@ -39,7 +39,7 @@ class PowerRabi(Experiment):
|
|
39
39
|
If None, a default scan will be used.
|
40
40
|
drive_waveform : Waveform
|
41
41
|
The waveform to use for the drive pulse.
|
42
|
-
recycle_delay_ns : int
|
42
|
+
recycle_delay_ns : int, optional
|
43
43
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
44
44
|
shot_count : int, optional
|
45
45
|
The number of shots to take. Defaults to 400.
|
@@ -48,7 +48,7 @@ class PowerRabi(Experiment):
|
|
48
48
|
measure_waveform : ConstantWaveform or None, optional
|
49
49
|
The waveform to use for the measurement pulse.
|
50
50
|
Defaults to the measurement defcal.
|
51
|
-
run_mixer_calibration: bool
|
51
|
+
run_mixer_calibration: bool, optional
|
52
52
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
53
53
|
update : "auto" or "off" or "prompt", optional
|
54
54
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -39,7 +39,7 @@ class PowerRabiEF(Experiment):
|
|
39
39
|
If None, a default scan will be used.
|
40
40
|
drive_waveform : Waveform
|
41
41
|
The waveform to use for the drive pulse.
|
42
|
-
recycle_delay_ns : int
|
42
|
+
recycle_delay_ns : int, optional
|
43
43
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
44
44
|
shot_count : int, optional
|
45
45
|
The number of shots to take. Defaults to 400.
|
@@ -48,7 +48,7 @@ class PowerRabiEF(Experiment):
|
|
48
48
|
measure_waveform : ConstantWaveform or None, optional
|
49
49
|
The waveform to use for the measurement pulse.
|
50
50
|
Defaults to the measurement defcal.
|
51
|
-
run_mixer_calibration: bool
|
51
|
+
run_mixer_calibration: bool, optional
|
52
52
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
53
53
|
update : "auto" or "off" or "prompt", optional
|
54
54
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -42,7 +42,7 @@ class Ramsey(Experiment):
|
|
42
42
|
measure_waveform : ConstantWaveform or None, optional
|
43
43
|
The waveform to use for the measurement pulse.
|
44
44
|
Defaults to the measurement defcal.
|
45
|
-
run_mixer_calibration: bool
|
45
|
+
run_mixer_calibration: bool, optional
|
46
46
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
47
47
|
update : "auto" or "off" or "prompt", optional
|
48
48
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -31,14 +31,14 @@ class ReadoutClassifier(Experiment):
|
|
31
31
|
----------
|
32
32
|
transmon : str
|
33
33
|
The reference for the transmon to target.
|
34
|
-
recycle_delay_ns : int
|
34
|
+
recycle_delay_ns : int, optional
|
35
35
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
36
36
|
shot_count : int, optional
|
37
37
|
The number of shots to take. Defaults to 5,000.
|
38
38
|
measure_waveform : ConstantWaveform or None, optional
|
39
39
|
The waveform to use for the measurement pulse.
|
40
40
|
Defaults to the measurement defcal.
|
41
|
-
run_mixer_calibration: bool
|
41
|
+
run_mixer_calibration: bool, optional
|
42
42
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
43
43
|
update : "auto" or "off" or "prompt", optional
|
44
44
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -28,7 +28,7 @@ class ReadoutOptimization(Experiment):
|
|
28
28
|
"""
|
29
29
|
Parameters for optimizing the readout classifier.
|
30
30
|
|
31
|
-
|
31
|
+
Attributes
|
32
32
|
----------
|
33
33
|
transmon : str
|
34
34
|
The reference for the transmon to target.
|
@@ -36,11 +36,11 @@ class ReadoutOptimization(Experiment):
|
|
36
36
|
The readout frequencies to sweep, in Hz.
|
37
37
|
amplitudes : list[float]
|
38
38
|
The readout amplitudes to sweep.
|
39
|
-
recycle_delay_ns : int
|
39
|
+
recycle_delay_ns : int, optional
|
40
40
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
41
41
|
shot_count : int, optional
|
42
42
|
The number of shots to take. Defaults to 5,000.
|
43
|
-
run_mixer_calibration: bool
|
43
|
+
run_mixer_calibration: bool, optional
|
44
44
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
45
45
|
update : "auto" or "off", optional
|
46
46
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -44,7 +44,7 @@ class ResonatorSpectroscopy(Experiment):
|
|
44
44
|
measure_waveform : ConstantWaveform or None, optional
|
45
45
|
The waveform to use for the measurement pulse.
|
46
46
|
Defaults to the measurement defcal.
|
47
|
-
run_mixer_calibration: bool
|
47
|
+
run_mixer_calibration: bool, optional
|
48
48
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
49
49
|
update : "auto" or "off" or "prompt", optional
|
50
50
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -27,7 +27,7 @@ from .waveforms import ConstantWaveform
|
|
27
27
|
|
28
28
|
class ResonatorSpectroscopyByBias(Experiment):
|
29
29
|
"""
|
30
|
-
Parameters for running a resonator spectroscopy by
|
30
|
+
Parameters for running a resonator spectroscopy by bias experiment.
|
31
31
|
|
32
32
|
Attributes
|
33
33
|
----------
|
@@ -51,7 +51,7 @@ class ResonatorSpectroscopyByBias(Experiment):
|
|
51
51
|
measure_waveform : ConstantWaveform or None, optional
|
52
52
|
The waveform to use for the measurement pulse.
|
53
53
|
Defaults to the measurement defcal.
|
54
|
-
run_mixer_calibration: bool
|
54
|
+
run_mixer_calibration: bool, optional
|
55
55
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
56
56
|
update : "auto" or "off" or "prompt", optional
|
57
57
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -45,7 +45,7 @@ class ResonatorSpectroscopyByPower(Experiment):
|
|
45
45
|
The delay between consecutive shots, in nanoseconds. Defaults to 1,000 ns.
|
46
46
|
shot_count : int, optional
|
47
47
|
The number of shots to take. Defaults to 100.
|
48
|
-
run_mixer_calibration: bool
|
48
|
+
run_mixer_calibration: bool, optional
|
49
49
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
50
50
|
update : "auto" or "off" or "prompt", optional
|
51
51
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -32,7 +32,7 @@ class T1(Experiment):
|
|
32
32
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
33
33
|
shot_count : int, optional
|
34
34
|
The number of shots to take. Defaults to 400.
|
35
|
-
run_mixer_calibration: bool
|
35
|
+
run_mixer_calibration: bool, optional
|
36
36
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
37
37
|
update : "auto" or "off" or "prompt", optional
|
38
38
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -34,7 +34,7 @@ class T2(Experiment):
|
|
34
34
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
35
35
|
shot_count : int, optional
|
36
36
|
The number of shots to take. Defaults to 400.
|
37
|
-
run_mixer_calibration: bool
|
37
|
+
run_mixer_calibration: bool, optional
|
38
38
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
39
39
|
update : "auto" or "off" or "prompt", optional
|
40
40
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -34,7 +34,7 @@ class T2Echo(Experiment):
|
|
34
34
|
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
35
35
|
shot_count : int, optional
|
36
36
|
The number of shots to take. Defaults to 400.
|
37
|
-
run_mixer_calibration: bool
|
37
|
+
run_mixer_calibration: bool, optional
|
38
38
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
39
39
|
update : "auto" or "off" or "prompt", optional
|
40
40
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -51,7 +51,7 @@ class TransmonAnharmonicity(Experiment):
|
|
51
51
|
measure_waveform : ConstantWaveform or None, optional
|
52
52
|
The waveform to use for the measurement pulse.
|
53
53
|
Defaults to the measurement defcal.
|
54
|
-
run_mixer_calibration: bool
|
54
|
+
run_mixer_calibration: bool, optional
|
55
55
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
56
56
|
update : "auto" or "off" or "prompt", optional
|
57
57
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -40,13 +40,13 @@ class TransmonSpectroscopy(Experiment):
|
|
40
40
|
recycle_delay_ns : int, optional
|
41
41
|
The delay between consecutive shots, in nanoseconds. Defaults to 50,000 ns.
|
42
42
|
shot_count : int, optional
|
43
|
-
The number of shots to take. Defaults to
|
43
|
+
The number of shots to take. Defaults to 400.
|
44
44
|
spectroscopy_waveform : ConstantWaveform
|
45
45
|
The waveform to use in the spectroscopy pulse.
|
46
46
|
measure_waveform : ConstantWaveform or None, optional
|
47
47
|
The waveform to use for the measurement pulse.
|
48
48
|
Defaults to the measurement defcal.
|
49
|
-
run_mixer_calibration: bool
|
49
|
+
run_mixer_calibration: bool, optional
|
50
50
|
Whether to run mixer calibrations before running a program. Defaults to False.
|
51
51
|
update : "auto" or "off" or "prompt", optional
|
52
52
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -25,7 +25,7 @@ class VoltageBiasFineTune(Experiment):
|
|
25
25
|
Attributes
|
26
26
|
----------
|
27
27
|
transmon : str
|
28
|
-
The reference for the transmon to XY drive
|
28
|
+
The reference for the transmon to XY drive.
|
29
29
|
delays_ns : list[int] or RangeIterable
|
30
30
|
The delay times, in nanoseconds.
|
31
31
|
flux_count : int
|
@@ -35,14 +35,16 @@ class VoltageBiasFineTune(Experiment):
|
|
35
35
|
virtual_detuning : float
|
36
36
|
The difference between the drive signal frequency and the qubit frequency, in Hz.
|
37
37
|
bias_transmon : str or None, optional
|
38
|
-
The reference for the transmon to flux tune
|
38
|
+
The reference for the transmon to flux tune.
|
39
39
|
Defaults to transmon.
|
40
40
|
recycle_delay_ns : int, optional
|
41
|
-
The delay
|
42
|
-
Defaults to
|
41
|
+
The delay between consecutive shots, in nanoseconds.
|
42
|
+
Defaults to 100,000 ns.
|
43
43
|
shot_count : int, optional
|
44
|
-
The number of shots to
|
44
|
+
The number of shots to take.
|
45
45
|
Defaults to 400.
|
46
|
+
update : "auto" or "off" or "prompt", optional
|
47
|
+
How the device should be updated after an experiment run. Defaults to auto.
|
46
48
|
"""
|
47
49
|
|
48
50
|
_experiment_name: str = PrivateAttr("voltage_bias_fine_tune")
|
@@ -15,7 +15,7 @@ from typing import Literal
|
|
15
15
|
|
16
16
|
from pydantic import PrivateAttr
|
17
17
|
|
18
|
-
from .common import Experiment
|
18
|
+
from .common import Experiment, RangeIterable
|
19
19
|
|
20
20
|
|
21
21
|
class ZZRamsey(Experiment):
|
@@ -25,22 +25,18 @@ class ZZRamsey(Experiment):
|
|
25
25
|
Attributes
|
26
26
|
----------
|
27
27
|
control_transmon : str
|
28
|
-
The
|
28
|
+
The reference for the transmon to use as control.
|
29
29
|
target_transmon : str
|
30
|
-
The
|
31
|
-
|
32
|
-
The
|
33
|
-
min_delay_ns : int
|
34
|
-
The minimum delay time, in nanoseconds.
|
35
|
-
delay_step_ns : int
|
36
|
-
The step for generating the list of delays, in nanoseconds.
|
30
|
+
The reference for the transmon to use as target.
|
31
|
+
delays_ns : RangeIterable
|
32
|
+
The delay times, in nanoseconds.
|
37
33
|
virtual_detuning : float
|
38
34
|
The difference between the drive signal frequency and the qubit frequency, in Hz.
|
39
35
|
recycle_delay_ns : int, optional
|
40
|
-
The delay
|
36
|
+
The delay between consecutive shots, in nanoseconds.
|
41
37
|
Defaults to 10,000 ns.
|
42
38
|
shot_count : int, optional
|
43
|
-
The number of shots to
|
39
|
+
The number of shots to take.
|
44
40
|
Defaults to 400.
|
45
41
|
update : "auto" or "off" or "prompt", optional
|
46
42
|
How the device should be updated after an experiment run. Defaults to auto.
|
@@ -50,9 +46,7 @@ class ZZRamsey(Experiment):
|
|
50
46
|
|
51
47
|
control_transmon: str
|
52
48
|
target_transmon: str
|
53
|
-
|
54
|
-
min_delay_ns: int
|
55
|
-
delay_step_ns: int
|
49
|
+
delays_ns: RangeIterable
|
56
50
|
virtual_detuning: float
|
57
51
|
recycle_delay_ns: int = 10_000
|
58
52
|
shot_count: int = 400
|
@@ -16,7 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
|
|
16
16
|
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
17
17
|
|
18
18
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.boulderopalscaleupsdk/protobuf/v1/device.proto\x12!boulderopalscaleupsdk.protobuf.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\"b\n\x12SetSnapshotRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x04\x64\x61ta\"P\n\x13SetSnapshotResponse\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x18\n\x07version\x18\x02 \x01(\x05R\x07version\"O\n\x12GetSnapshotRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x18\n\x07version\x18\x02 \x01(\x05R\x07version\"B\n\x13GetSnapshotResponse\x12+\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x04\x64\x61ta\"\x85\x01\n\rCreateRequest\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x02 \x01(\tR\ndeviceName\x12\x38\n\x0b\x64\x65vice_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\ndeviceData\"$\n\x0e\x43reateResponse\x12\x12\n\x04\x64one\x18\x01 \x01(\x08R\x04\x64one\"
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.boulderopalscaleupsdk/protobuf/v1/device.proto\x12!boulderopalscaleupsdk.protobuf.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\"b\n\x12SetSnapshotRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x04\x64\x61ta\"P\n\x13SetSnapshotResponse\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x18\n\x07version\x18\x02 \x01(\x05R\x07version\"O\n\x12GetSnapshotRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x18\n\x07version\x18\x02 \x01(\x05R\x07version\"B\n\x13GetSnapshotResponse\x12+\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x04\x64\x61ta\"\x85\x01\n\rCreateRequest\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x02 \x01(\tR\ndeviceName\x12\x38\n\x0b\x64\x65vice_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\ndeviceData\"$\n\x0e\x43reateResponse\x12\x12\n\x04\x64one\x18\x01 \x01(\x08R\x04\x64one\"L\n\x0eGetDataRequest\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x02 \x01(\tR\ndeviceName\"\xc6\x01\n\x0fGetDataResponse\x12>\n\x0eprocessor_data\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\rprocessorData\x12@\n\x0f\x63ontroller_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\x0e\x63ontrollerData\x12\x31\n\x07\x64\x65\x66\x63\x61ls\x18\x04 \x03(\x0b\x32\x17.google.protobuf.StructR\x07\x64\x65\x66\x63\x61ls\"\x8b\x01\n\rUpdateRequest\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x02 \x01(\tR\ndeviceName\x12>\n\x0eprocessor_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\rprocessorData\"\x92\x01\n\x0eUpdateResponse\x12>\n\x0eprocessor_data\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructR\rprocessorData\x12@\n\x0f\x63ontroller_data\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructR\x0e\x63ontrollerData\"K\n\rDeleteRequest\x12\x19\n\x08\x61pp_name\x18\x01 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x02 \x01(\tR\ndeviceName\"$\n\x0e\x44\x65leteResponse\x12\x12\n\x04\x64one\x18\x01 \x01(\x08R\x04\x64one\"5\n\x12GetMetadataRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\"J\n\x13GetMetadataResponse\x12\x33\n\x08metadata\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"U\n\x1cGetAllDevicesMetadataRequest\x12\x14\n\x05limit\x18\x01 \x01(\x05R\x05limit\x12\x1f\n\x0bnext_cursor\x18\x02 \x01(\tR\nnextCursor\"w\n\x1dGetAllDevicesMetadataResponse\x12\x35\n\tmetadatas\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructR\tmetadatas\x12\x1f\n\x0bnext_cursor\x18\x02 \x01(\tR\nnextCursor\"\x90\x01\n\x0bMaskRequest\x12\x44\n\x04mode\x18\x01 \x01(\x0e\x32\x30.boulderopalscaleupsdk.protobuf.v1.SelectionModeR\x04mode\x12\x1f\n\x0b\x64\x65vice_name\x18\x02 \x01(\tR\ndeviceName\x12\x1a\n\x08\x65lements\x18\x03 \x03(\tR\x08\x65lements\"\"\n\x0cMaskResponse\x12\x12\n\x04\x64one\x18\x01 \x01(\x08R\x04\x64one\"L\n\rUnmaskRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x1a\n\x08\x65lements\x18\x02 \x03(\tR\x08\x65lements\"$\n\x0eUnmaskResponse\x12\x12\n\x04\x64one\x18\x01 \x01(\x08R\x04\x64one*a\n\rSelectionMode\x12\x1e\n\x1aSELECTION_MODE_UNSPECIFIED\x10\x00\x12\x18\n\x14SELECTION_MODE_ITEMS\x10\x01\x12\x16\n\x12SELECTION_MODE_ALL\x10\x02\x32\xb2\x0c\n\x14\x44\x65viceManagerService\x12\x8b\x01\n\x06\x43reate\x12\x30.boulderopalscaleupsdk.protobuf.v1.CreateRequest\x1a\x31.boulderopalscaleupsdk.protobuf.v1.CreateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\"\x11/v1/device/create:\x01*\x12\x97\x01\n\x07GetData\x12\x31.boulderopalscaleupsdk.protobuf.v1.GetDataRequest\x1a\x32.boulderopalscaleupsdk.protobuf.v1.GetDataResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/device/get_device_data:\x01*\x12\x8b\x01\n\x06Update\x12\x30.boulderopalscaleupsdk.protobuf.v1.UpdateRequest\x1a\x31.boulderopalscaleupsdk.protobuf.v1.UpdateResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\"\x11/v1/device/update:\x01*\x12\x83\x01\n\x04Mask\x12..boulderopalscaleupsdk.protobuf.v1.MaskRequest\x1a/.boulderopalscaleupsdk.protobuf.v1.MaskResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\"\x0f/v1/device/mask:\x01*\x12\x8b\x01\n\x06Unmask\x12\x30.boulderopalscaleupsdk.protobuf.v1.UnmaskRequest\x1a\x31.boulderopalscaleupsdk.protobuf.v1.UnmaskResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\"\x11/v1/device/unmask:\x01*\x12\x8b\x01\n\x06\x44\x65lete\x12\x30.boulderopalscaleupsdk.protobuf.v1.DeleteRequest\x1a\x31.boulderopalscaleupsdk.protobuf.v1.DeleteResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\"\x11/v1/device/delete:\x01*\x12\xa7\x01\n\x0bGetMetadata\x12\x35.boulderopalscaleupsdk.protobuf.v1.GetMetadataRequest\x1a\x36.boulderopalscaleupsdk.protobuf.v1.GetMetadataResponse\")\x82\xd3\xe4\x93\x02#\"\x1e/v1/device/get_device_metadata:\x01*\x12\xd1\x01\n\x15GetAllDevicesMetadata\x12?.boulderopalscaleupsdk.protobuf.v1.GetAllDevicesMetadataRequest\x1a@.boulderopalscaleupsdk.protobuf.v1.GetAllDevicesMetadataResponse\"5\x82\xd3\xe4\x93\x02/\"*/v1/device/get_all_devices_metadata_by_org:\x01*\x12\xa0\x01\n\x0bGetSnapshot\x12\x35.boulderopalscaleupsdk.protobuf.v1.GetSnapshotRequest\x1a\x36.boulderopalscaleupsdk.protobuf.v1.GetSnapshotResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/v1/device/get_snapshot:\x01*\x12\xa0\x01\n\x0bSetSnapshot\x12\x35.boulderopalscaleupsdk.protobuf.v1.SetSnapshotRequest\x1a\x36.boulderopalscaleupsdk.protobuf.v1.SetSnapshotResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/v1/device/set_snapshot:\x01*B\xaa\x02\n%com.boulderopalscaleupsdk.protobuf.v1B\x0b\x44\x65viceProtoP\x01ZNgithub.com/qctrl/boulder-opal-scale-up/proto/boulderopalscaleupsdk/protobuf/v1\xa2\x02\x03\x42PX\xaa\x02!Boulderopalscaleupsdk.Protobuf.V1\xca\x02!Boulderopalscaleupsdk\\Protobuf\\V1\xe2\x02-Boulderopalscaleupsdk\\Protobuf\\V1\\GPBMetadata\xea\x02#Boulderopalscaleupsdk::Protobuf::V1b\x06proto3')
|
20
20
|
|
21
21
|
_globals = globals()
|
22
22
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -26,8 +26,6 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
26
26
|
_globals['DESCRIPTOR']._serialized_options = b'\n%com.boulderopalscaleupsdk.protobuf.v1B\013DeviceProtoP\001ZNgithub.com/qctrl/boulder-opal-scale-up/proto/boulderopalscaleupsdk/protobuf/v1\242\002\003BPX\252\002!Boulderopalscaleupsdk.Protobuf.V1\312\002!Boulderopalscaleupsdk\\Protobuf\\V1\342\002-Boulderopalscaleupsdk\\Protobuf\\V1\\GPBMetadata\352\002#Boulderopalscaleupsdk::Protobuf::V1'
|
27
27
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['Create']._loaded_options = None
|
28
28
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['Create']._serialized_options = b'\202\323\344\223\002\026\"\021/v1/device/create:\001*'
|
29
|
-
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['Copy']._loaded_options = None
|
30
|
-
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['Copy']._serialized_options = b'\202\323\344\223\002\024\"\017/v1/device/copy:\001*'
|
31
29
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['GetData']._loaded_options = None
|
32
30
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['GetData']._serialized_options = b'\202\323\344\223\002\037\"\032/v1/device/get_device_data:\001*'
|
33
31
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['Update']._loaded_options = None
|
@@ -46,8 +44,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
46
44
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['GetSnapshot']._serialized_options = b'\202\323\344\223\002\034\"\027/v1/device/get_snapshot:\001*'
|
47
45
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['SetSnapshot']._loaded_options = None
|
48
46
|
_globals['_DEVICEMANAGERSERVICE'].methods_by_name['SetSnapshot']._serialized_options = b'\202\323\344\223\002\034\"\027/v1/device/set_snapshot:\001*'
|
49
|
-
_globals['_SELECTIONMODE']._serialized_start=
|
50
|
-
_globals['_SELECTIONMODE']._serialized_end=
|
47
|
+
_globals['_SELECTIONMODE']._serialized_start=1973
|
48
|
+
_globals['_SELECTIONMODE']._serialized_end=2070
|
51
49
|
_globals['_SETSNAPSHOTREQUEST']._serialized_start=145
|
52
50
|
_globals['_SETSNAPSHOTREQUEST']._serialized_end=243
|
53
51
|
_globals['_SETSNAPSHOTRESPONSE']._serialized_start=245
|
@@ -60,38 +58,34 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
60
58
|
_globals['_CREATEREQUEST']._serialized_end=610
|
61
59
|
_globals['_CREATERESPONSE']._serialized_start=612
|
62
60
|
_globals['_CREATERESPONSE']._serialized_end=648
|
63
|
-
_globals['
|
64
|
-
_globals['
|
65
|
-
_globals['
|
66
|
-
_globals['
|
67
|
-
_globals['
|
68
|
-
_globals['
|
69
|
-
_globals['
|
70
|
-
_globals['
|
71
|
-
_globals['
|
72
|
-
_globals['
|
73
|
-
_globals['
|
74
|
-
_globals['
|
75
|
-
_globals['
|
76
|
-
_globals['
|
77
|
-
_globals['
|
78
|
-
_globals['
|
79
|
-
_globals['
|
80
|
-
_globals['
|
81
|
-
_globals['
|
82
|
-
_globals['
|
83
|
-
_globals['
|
84
|
-
_globals['
|
85
|
-
_globals['
|
86
|
-
_globals['
|
87
|
-
_globals['
|
88
|
-
_globals['
|
89
|
-
_globals['
|
90
|
-
_globals['
|
91
|
-
_globals['
|
92
|
-
_globals['
|
93
|
-
_globals['_UNMASKRESPONSE']._serialized_start=2066
|
94
|
-
_globals['_UNMASKRESPONSE']._serialized_end=2102
|
95
|
-
_globals['_DEVICEMANAGERSERVICE']._serialized_start=2204
|
96
|
-
_globals['_DEVICEMANAGERSERVICE']._serialized_end=3924
|
61
|
+
_globals['_GETDATAREQUEST']._serialized_start=650
|
62
|
+
_globals['_GETDATAREQUEST']._serialized_end=726
|
63
|
+
_globals['_GETDATARESPONSE']._serialized_start=729
|
64
|
+
_globals['_GETDATARESPONSE']._serialized_end=927
|
65
|
+
_globals['_UPDATEREQUEST']._serialized_start=930
|
66
|
+
_globals['_UPDATEREQUEST']._serialized_end=1069
|
67
|
+
_globals['_UPDATERESPONSE']._serialized_start=1072
|
68
|
+
_globals['_UPDATERESPONSE']._serialized_end=1218
|
69
|
+
_globals['_DELETEREQUEST']._serialized_start=1220
|
70
|
+
_globals['_DELETEREQUEST']._serialized_end=1295
|
71
|
+
_globals['_DELETERESPONSE']._serialized_start=1297
|
72
|
+
_globals['_DELETERESPONSE']._serialized_end=1333
|
73
|
+
_globals['_GETMETADATAREQUEST']._serialized_start=1335
|
74
|
+
_globals['_GETMETADATAREQUEST']._serialized_end=1388
|
75
|
+
_globals['_GETMETADATARESPONSE']._serialized_start=1390
|
76
|
+
_globals['_GETMETADATARESPONSE']._serialized_end=1464
|
77
|
+
_globals['_GETALLDEVICESMETADATAREQUEST']._serialized_start=1466
|
78
|
+
_globals['_GETALLDEVICESMETADATAREQUEST']._serialized_end=1551
|
79
|
+
_globals['_GETALLDEVICESMETADATARESPONSE']._serialized_start=1553
|
80
|
+
_globals['_GETALLDEVICESMETADATARESPONSE']._serialized_end=1672
|
81
|
+
_globals['_MASKREQUEST']._serialized_start=1675
|
82
|
+
_globals['_MASKREQUEST']._serialized_end=1819
|
83
|
+
_globals['_MASKRESPONSE']._serialized_start=1821
|
84
|
+
_globals['_MASKRESPONSE']._serialized_end=1855
|
85
|
+
_globals['_UNMASKREQUEST']._serialized_start=1857
|
86
|
+
_globals['_UNMASKREQUEST']._serialized_end=1933
|
87
|
+
_globals['_UNMASKRESPONSE']._serialized_start=1935
|
88
|
+
_globals['_UNMASKRESPONSE']._serialized_end=1971
|
89
|
+
_globals['_DEVICEMANAGERSERVICE']._serialized_start=2073
|
90
|
+
_globals['_DEVICEMANAGERSERVICE']._serialized_end=3659
|
97
91
|
# @@protoc_insertion_point(module_scope)
|
@@ -63,20 +63,6 @@ class CreateResponse(_message.Message):
|
|
63
63
|
done: bool
|
64
64
|
def __init__(self, done: bool = ...) -> None: ...
|
65
65
|
|
66
|
-
class CopyRequest(_message.Message):
|
67
|
-
__slots__ = ("from_device_name", "to_device_name")
|
68
|
-
FROM_DEVICE_NAME_FIELD_NUMBER: _ClassVar[int]
|
69
|
-
TO_DEVICE_NAME_FIELD_NUMBER: _ClassVar[int]
|
70
|
-
from_device_name: str
|
71
|
-
to_device_name: str
|
72
|
-
def __init__(self, from_device_name: _Optional[str] = ..., to_device_name: _Optional[str] = ...) -> None: ...
|
73
|
-
|
74
|
-
class CopyResponse(_message.Message):
|
75
|
-
__slots__ = ("done",)
|
76
|
-
DONE_FIELD_NUMBER: _ClassVar[int]
|
77
|
-
done: bool
|
78
|
-
def __init__(self, done: bool = ...) -> None: ...
|
79
|
-
|
80
66
|
class GetDataRequest(_message.Message):
|
81
67
|
__slots__ = ("app_name", "device_name")
|
82
68
|
APP_NAME_FIELD_NUMBER: _ClassVar[int]
|