boulder-opal-scale-up-sdk 1.0.2__py3-none-any.whl → 1.0.4__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.2.dist-info → boulder_opal_scale_up_sdk-1.0.4.dist-info}/METADATA +1 -1
- boulder_opal_scale_up_sdk-1.0.4.dist-info/RECORD +67 -0
- boulderopalscaleupsdk/agent/worker.py +10 -5
- boulderopalscaleupsdk/common/dtypes.py +14 -1
- boulderopalscaleupsdk/common/typeclasses.py +22 -0
- boulderopalscaleupsdk/device/__init__.py +0 -8
- boulderopalscaleupsdk/device/common.py +0 -3
- boulderopalscaleupsdk/device/config_loader.py +1 -0
- boulderopalscaleupsdk/device/controller/qblox.py +129 -0
- boulderopalscaleupsdk/device/defcal.py +5 -44
- boulderopalscaleupsdk/device/device.py +34 -12
- boulderopalscaleupsdk/device/processor/__init__.py +0 -2
- boulderopalscaleupsdk/device/processor/common.py +37 -20
- boulderopalscaleupsdk/device/processor/superconducting_processor.py +28 -22
- boulderopalscaleupsdk/experiments/__init__.py +20 -2
- boulderopalscaleupsdk/experiments/chi01_scan.py +14 -8
- boulderopalscaleupsdk/experiments/common.py +15 -16
- boulderopalscaleupsdk/experiments/power_rabi.py +16 -12
- boulderopalscaleupsdk/experiments/power_rabi_ef.py +66 -0
- boulderopalscaleupsdk/experiments/ramsey.py +15 -17
- boulderopalscaleupsdk/experiments/readout_classifier_calibration.py +25 -5
- boulderopalscaleupsdk/experiments/resonator_spectroscopy.py +14 -17
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_bias.py +17 -20
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_power.py +12 -12
- boulderopalscaleupsdk/experiments/t1.py +46 -0
- boulderopalscaleupsdk/experiments/t2.py +49 -0
- boulderopalscaleupsdk/experiments/t2_echo.py +49 -0
- boulderopalscaleupsdk/experiments/transmon_anharmonicity.py +29 -26
- boulderopalscaleupsdk/experiments/transmon_spectroscopy.py +16 -21
- boulderopalscaleupsdk/experiments/waveforms.py +63 -0
- boulderopalscaleupsdk/plotting/dtypes.py +1 -0
- boulderopalscaleupsdk/protobuf/v1/device_pb2.py +20 -20
- boulderopalscaleupsdk/protobuf/v1/device_pb2.pyi +4 -2
- boulderopalscaleupsdk/protobuf/v1/task_pb2.py +16 -16
- boulderopalscaleupsdk/protobuf/v1/task_pb2.pyi +4 -2
- boulderopalscaleupsdk/routines/__init__.py +16 -1
- boulderopalscaleupsdk/routines/common.py +13 -0
- boulderopalscaleupsdk/routines/resonator_mapping.py +16 -0
- boulderopalscaleupsdk/routines/transmon_discovery.py +45 -0
- boulderopalscaleupsdk/routines/transmon_retuning.py +31 -0
- boulderopalscaleupsdk/stubs/maps.py +11 -2
- boulder_opal_scale_up_sdk-1.0.2.dist-info/RECORD +0 -60
- {boulder_opal_scale_up_sdk-1.0.2.dist-info → boulder_opal_scale_up_sdk-1.0.4.dist-info}/LICENSE +0 -0
- {boulder_opal_scale_up_sdk-1.0.2.dist-info → boulder_opal_scale_up_sdk-1.0.4.dist-info}/WHEEL +0 -0
@@ -33,23 +33,22 @@ class ResonatorSpectroscopyByPower(Experiment):
|
|
33
33
|
Parameters
|
34
34
|
----------
|
35
35
|
resonator : str
|
36
|
-
The reference for the resonator to target
|
36
|
+
The reference for the resonator to target.
|
37
37
|
frequencies : list[int] or LinspaceIterable or RangeIterable or CWSIterable
|
38
38
|
or HypIterable or None, optional
|
39
|
-
The frequencies at which to scan.
|
40
|
-
|
41
|
-
|
42
|
-
The powers at which to scan the readout pulse.
|
39
|
+
The frequencies at which to scan, in Hz.
|
40
|
+
Defaults to a scan around the readout frequency.
|
41
|
+
powers_dbm : list[float] or None, optional
|
42
|
+
The powers at which to scan the readout pulse, in dBm.
|
43
43
|
If None, a default power scan will be used.
|
44
44
|
duration_ns : int, optional
|
45
|
-
The duration of the readout pulse, in nanoseconds.
|
46
|
-
Defaults to 2000 ns.
|
45
|
+
The duration of the readout pulse, in nanoseconds. Defaults to 2,000 ns.
|
47
46
|
recycle_delay_ns : int, optional
|
48
|
-
The delay
|
49
|
-
Defaults to 1000 ns.
|
47
|
+
The delay between consecutive shots, in nanoseconds. Defaults to 1,000 ns.
|
50
48
|
shot_count : int, optional
|
51
|
-
The number of shots to
|
52
|
-
|
49
|
+
The number of shots to take. Defaults to 100.
|
50
|
+
run_mixer_calibration: bool
|
51
|
+
Whether to run mixer calibrations before running a program. Defaults to False.
|
53
52
|
"""
|
54
53
|
|
55
54
|
_experiment_name: str = PrivateAttr("resonator_spectroscopy_by_power")
|
@@ -58,7 +57,8 @@ class ResonatorSpectroscopyByPower(Experiment):
|
|
58
57
|
frequencies: list[int] | LinspaceIterable | RangeIterable | CWSIterable | HypIterable | None = (
|
59
58
|
None
|
60
59
|
)
|
61
|
-
|
60
|
+
powers_dbm: list[float] | None = None
|
62
61
|
duration_ns: int = DEFAULT_DURATION_NS
|
63
62
|
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
64
63
|
shot_count: int = DEFAULT_SHOT_COUNT
|
64
|
+
run_mixer_calibration: bool = False
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Copyright 2025 Q-CTRL. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Q-CTRL Terms of service (the "License"). Unauthorized
|
4
|
+
# copying or use of this file, via any medium, is strictly prohibited.
|
5
|
+
# Proprietary and confidential. You may not use this file except in compliance
|
6
|
+
# with the License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# https://q-ctrl.com/terms
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS. See the
|
12
|
+
# License for the specific language.
|
13
|
+
|
14
|
+
from pydantic import PrivateAttr
|
15
|
+
|
16
|
+
from .common import Experiment, LogspaceIterable
|
17
|
+
|
18
|
+
DEFAULT_RECYCLE_DELAY_NS = 200_000
|
19
|
+
DEFAULT_SHOT_COUNT = 400
|
20
|
+
|
21
|
+
|
22
|
+
class T1(Experiment):
|
23
|
+
"""
|
24
|
+
Parameters for running a T1 experiment.
|
25
|
+
|
26
|
+
Parameters
|
27
|
+
----------
|
28
|
+
transmon : str
|
29
|
+
The reference for the transmon to target.
|
30
|
+
delays_ns : LogspaceIterable
|
31
|
+
The delay times, in nanoseconds.
|
32
|
+
recycle_delay_ns : int, optional
|
33
|
+
The delay between consecutive shots, in nanoseconds. Defaults to 200,000 ns.
|
34
|
+
shot_count : int, optional
|
35
|
+
The number of shots to take. Defaults to 400.
|
36
|
+
run_mixer_calibration: bool
|
37
|
+
Whether to run mixer calibrations before running a program. Defaults to False.
|
38
|
+
"""
|
39
|
+
|
40
|
+
_experiment_name: str = PrivateAttr("t1")
|
41
|
+
|
42
|
+
transmon: str
|
43
|
+
delays_ns: LogspaceIterable
|
44
|
+
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
45
|
+
shot_count: int = DEFAULT_SHOT_COUNT
|
46
|
+
run_mixer_calibration: bool = False
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Copyright 2025 Q-CTRL. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Q-CTRL Terms of service (the "License"). Unauthorized
|
4
|
+
# copying or use of this file, via any medium, is strictly prohibited.
|
5
|
+
# Proprietary and confidential. You may not use this file except in compliance
|
6
|
+
# with the License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# https://q-ctrl.com/terms
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS. See the
|
12
|
+
# License for the specific language.
|
13
|
+
|
14
|
+
from pydantic import PrivateAttr
|
15
|
+
|
16
|
+
from .common import Experiment, RangeIterable
|
17
|
+
|
18
|
+
DEFAULT_RECYCLE_DELAY_NS = 100_000
|
19
|
+
DEFAULT_SHOT_COUNT = 400
|
20
|
+
|
21
|
+
|
22
|
+
class T2(Experiment):
|
23
|
+
"""
|
24
|
+
Parameters for running a Ramsey experiment.
|
25
|
+
|
26
|
+
Parameters
|
27
|
+
----------
|
28
|
+
transmon : str
|
29
|
+
The reference for the transmon to target.
|
30
|
+
delays_ns : list[int] or RangeIterable
|
31
|
+
The delay times, in nanoseconds.
|
32
|
+
virtual_detuning : float
|
33
|
+
The virtual detuning added between SX pulses, in Hz.
|
34
|
+
recycle_delay_ns : int, optional
|
35
|
+
The delay between consecutive shots, in nanoseconds. Defaults to 100,000 ns.
|
36
|
+
shot_count : int, optional
|
37
|
+
The number of shots to take. Defaults to 400.
|
38
|
+
run_mixer_calibration: bool
|
39
|
+
Whether to run mixer calibrations before running a program. Defaults to False.
|
40
|
+
"""
|
41
|
+
|
42
|
+
_experiment_name: str = PrivateAttr("t2")
|
43
|
+
|
44
|
+
transmon: str
|
45
|
+
delays_ns: list[int] | RangeIterable
|
46
|
+
virtual_detuning: float
|
47
|
+
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
48
|
+
shot_count: int = DEFAULT_SHOT_COUNT
|
49
|
+
run_mixer_calibration: bool = False
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Copyright 2025 Q-CTRL. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Q-CTRL Terms of service (the "License"). Unauthorized
|
4
|
+
# copying or use of this file, via any medium, is strictly prohibited.
|
5
|
+
# Proprietary and confidential. You may not use this file except in compliance
|
6
|
+
# with the License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# https://q-ctrl.com/terms
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS. See the
|
12
|
+
# License for the specific language.
|
13
|
+
|
14
|
+
from pydantic import PrivateAttr
|
15
|
+
|
16
|
+
from .common import Experiment, RangeIterable
|
17
|
+
|
18
|
+
DEFAULT_RECYCLE_DELAY_NS = 100_000
|
19
|
+
DEFAULT_SHOT_COUNT = 400
|
20
|
+
|
21
|
+
|
22
|
+
class T2Echo(Experiment):
|
23
|
+
"""
|
24
|
+
Parameters for running a T2 echo experiment.
|
25
|
+
|
26
|
+
Parameters
|
27
|
+
----------
|
28
|
+
transmon : str
|
29
|
+
The reference for the transmon to target.
|
30
|
+
delays_ns : list[int] or RangeIterable
|
31
|
+
The delay times, in nanoseconds.
|
32
|
+
virtual_detuning : float
|
33
|
+
The virtual detuning added between SX pulses, in Hz.
|
34
|
+
recycle_delay_ns : int, optional
|
35
|
+
The delay between consecutive shots, in nanoseconds. Defaults to 100,000 ns.
|
36
|
+
shot_count : int, optional
|
37
|
+
The number of shots to take. Defaults to 400.
|
38
|
+
run_mixer_calibration: bool
|
39
|
+
Whether to run mixer calibrations before running a program. Defaults to False.
|
40
|
+
"""
|
41
|
+
|
42
|
+
_experiment_name: str = PrivateAttr("t2_echo")
|
43
|
+
|
44
|
+
transmon: str
|
45
|
+
delays_ns: list[int] | RangeIterable
|
46
|
+
virtual_detuning: float
|
47
|
+
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
48
|
+
shot_count: int = DEFAULT_SHOT_COUNT
|
49
|
+
run_mixer_calibration: bool = False
|
@@ -13,9 +13,15 @@
|
|
13
13
|
|
14
14
|
from pydantic import PrivateAttr
|
15
15
|
|
16
|
-
from .common import
|
16
|
+
from .common import (
|
17
|
+
CWSIterable,
|
18
|
+
Experiment,
|
19
|
+
HypIterable,
|
20
|
+
LinspaceIterable,
|
21
|
+
RangeIterable,
|
22
|
+
)
|
23
|
+
from .waveforms import ConstantWaveform
|
17
24
|
|
18
|
-
DEFAULT_DURATION_NS = 2_000 # ns
|
19
25
|
DEFAULT_RECYCLE_DELAY_NS = 1_000 # ns
|
20
26
|
DEFAULT_SHOT_COUNT = 100
|
21
27
|
DEFAULT_ANHARMONICITY_GUESS = -200e6 # Hz, typical anharmonicity for transmons
|
@@ -28,29 +34,27 @@ class TransmonAnharmonicity(Experiment):
|
|
28
34
|
Parameters
|
29
35
|
----------
|
30
36
|
transmon : str
|
31
|
-
The
|
37
|
+
The reference for the transmon to target.
|
32
38
|
frequencies : list[int] or LinspaceIterable or RangeIterable or CWSIterable
|
33
39
|
or HypIterable or None, optional
|
34
|
-
The
|
35
|
-
|
36
|
-
|
37
|
-
The
|
38
|
-
|
39
|
-
The duration of the spectroscopy pulse, in nanoseconds.
|
40
|
-
anharmonicity_guess_hz : float
|
41
|
-
The guessed anharmonicity of the qubit, in Hz. This is used to determine the
|
42
|
-
range of frequencies to scan if `frequencies` is not provided.
|
43
|
-
Defaults to -200 MHz.
|
44
|
-
readout_amplitude : float
|
45
|
-
The amplitude of the readout pulse.
|
46
|
-
duration_ns : int, optional
|
47
|
-
The duration of the readout pulse, in nanoseconds.
|
48
|
-
Defaults to 2000 ns.
|
40
|
+
The frequencies at which to scan, in Hz.
|
41
|
+
Defaults to a scan based on the transmon's frequency and anharmonicity.
|
42
|
+
anharmonicity : float, optional
|
43
|
+
The guessed anharmonicity of the transmon, in Hz.
|
44
|
+
Used to determine the scan frequencies if not provided. Defaults to -200 MHz.
|
49
45
|
recycle_delay_ns : int, optional
|
50
|
-
The delay
|
51
|
-
Defaults to 1000 ns.
|
46
|
+
The delay between consecutive shots, in nanoseconds. Defaults to 1,000 ns.
|
52
47
|
shot_count : int, optional
|
53
|
-
The number of shots to
|
48
|
+
The number of shots to take. Defaults to 100.
|
49
|
+
spectroscopy_waveform : ConstantWaveform or None, optional
|
50
|
+
The waveform to use in the spectroscopy pulse.
|
51
|
+
Defaults to a constant waveform with a duration of 2,000 ns
|
52
|
+
and an amplitude of 1.5 times the transmon's x_vp.
|
53
|
+
measure_waveform : ConstantWaveform or None, optional
|
54
|
+
The waveform to use for the measurement pulse.
|
55
|
+
Defaults to the measurement defcal.
|
56
|
+
run_mixer_calibration: bool
|
57
|
+
Whether to run mixer calibrations before running a program. Defaults to False.
|
54
58
|
"""
|
55
59
|
|
56
60
|
_experiment_name: str = PrivateAttr("transmon_anharmonicity")
|
@@ -59,10 +63,9 @@ class TransmonAnharmonicity(Experiment):
|
|
59
63
|
frequencies: list[int] | LinspaceIterable | RangeIterable | CWSIterable | HypIterable | None = (
|
60
64
|
None
|
61
65
|
)
|
62
|
-
|
63
|
-
spec_duration: int
|
64
|
-
anharmonicity_guess_hz: float = DEFAULT_ANHARMONICITY_GUESS
|
65
|
-
readout_amplitude: float
|
66
|
-
duration_ns: int = DEFAULT_DURATION_NS
|
66
|
+
anharmonicity: float = DEFAULT_ANHARMONICITY_GUESS
|
67
67
|
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
68
68
|
shot_count: int = DEFAULT_SHOT_COUNT
|
69
|
+
spectroscopy_waveform: ConstantWaveform | None = None
|
70
|
+
measure_waveform: ConstantWaveform | None = None
|
71
|
+
run_mixer_calibration: bool = False
|
@@ -20,8 +20,8 @@ from .common import (
|
|
20
20
|
LinspaceIterable,
|
21
21
|
RangeIterable,
|
22
22
|
)
|
23
|
+
from .waveforms import ConstantWaveform
|
23
24
|
|
24
|
-
DEFAULT_DURATION_NS = 2000 # ns
|
25
25
|
DEFAULT_RECYCLE_DELAY_NS = 1000 # ns
|
26
26
|
DEFAULT_SHOT_COUNT = 100
|
27
27
|
|
@@ -33,26 +33,22 @@ class TransmonSpectroscopy(Experiment):
|
|
33
33
|
Parameters
|
34
34
|
----------
|
35
35
|
transmon : str
|
36
|
-
The reference for the transmon to target
|
36
|
+
The reference for the transmon to target.
|
37
37
|
frequencies : list[int] or LinspaceIterable or RangeIterable or CWSIterable
|
38
38
|
or HypIterable or None, optional
|
39
|
-
The frequencies at which to scan.
|
40
|
-
|
41
|
-
spec_amplitude : float
|
42
|
-
The amplitude of the spectroscopy pulse.
|
43
|
-
spec_duration : int
|
44
|
-
The duration of the spectroscopy pulse, in nanoseconds.
|
45
|
-
readout_amplitude : float
|
46
|
-
The amplitude of the readout pulse.
|
47
|
-
duration_ns : int, optional
|
48
|
-
The duration of the readout pulse, in nanoseconds.
|
49
|
-
Defaults to 2000 ns.
|
39
|
+
The frequencies at which to scan, in Hz.
|
40
|
+
Default to a scan around the transmon frequency.
|
50
41
|
recycle_delay_ns : int, optional
|
51
|
-
The delay
|
52
|
-
Defaults to 1000 ns.
|
42
|
+
The delay between consecutive shots, in nanoseconds. Defaults to 1,000 ns.
|
53
43
|
shot_count : int, optional
|
54
|
-
The number of shots to
|
55
|
-
|
44
|
+
The number of shots to take. Defaults to 100.
|
45
|
+
spectroscopy_waveform : ConstantWaveform
|
46
|
+
The waveform to use in the spectroscopy pulse.
|
47
|
+
measure_waveform : ConstantWaveform or None, optional
|
48
|
+
The waveform to use for the measurement pulse.
|
49
|
+
Defaults to the measurement defcal.
|
50
|
+
run_mixer_calibration: bool
|
51
|
+
Whether to run mixer calibrations before running a program. Defaults to False.
|
56
52
|
"""
|
57
53
|
|
58
54
|
_experiment_name: str = PrivateAttr("transmon_spectroscopy")
|
@@ -61,9 +57,8 @@ class TransmonSpectroscopy(Experiment):
|
|
61
57
|
frequencies: list[int] | LinspaceIterable | RangeIterable | CWSIterable | HypIterable | None = (
|
62
58
|
None
|
63
59
|
)
|
64
|
-
spec_amplitude: float
|
65
|
-
spec_duration: int
|
66
|
-
readout_amplitude: float
|
67
|
-
duration_ns: int = DEFAULT_DURATION_NS
|
68
60
|
recycle_delay_ns: int = DEFAULT_RECYCLE_DELAY_NS
|
69
61
|
shot_count: int = DEFAULT_SHOT_COUNT
|
62
|
+
spectroscopy_waveform: ConstantWaveform
|
63
|
+
measure_waveform: ConstantWaveform | None = None
|
64
|
+
run_mixer_calibration: bool = False
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# Copyright 2025 Q-CTRL. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Q-CTRL Terms of service (the "License"). Unauthorized
|
4
|
+
# copying or use of this file, via any medium, is strictly prohibited.
|
5
|
+
# Proprietary and confidential. You may not use this file except in compliance
|
6
|
+
# with the License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# https://q-ctrl.com/terms
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS. See the
|
12
|
+
# License for the specific language.
|
13
|
+
|
14
|
+
from dataclasses import replace
|
15
|
+
from typing import Annotated, Literal, Protocol, TypeVar
|
16
|
+
|
17
|
+
from pydantic import Discriminator
|
18
|
+
from pydantic.dataclasses import dataclass
|
19
|
+
|
20
|
+
|
21
|
+
class _Waveform(Protocol): # pragma: no cover
|
22
|
+
duration_ns: int
|
23
|
+
amplitude: float
|
24
|
+
|
25
|
+
|
26
|
+
@dataclass
|
27
|
+
class ConstantWaveform(_Waveform): # pragma: no cover
|
28
|
+
duration_ns: int
|
29
|
+
amplitude: float
|
30
|
+
waveform_type: Literal["Constant"] = "Constant"
|
31
|
+
|
32
|
+
|
33
|
+
@dataclass
|
34
|
+
class GaussianWaveform(_Waveform): # pragma: no cover
|
35
|
+
duration_ns: int
|
36
|
+
amplitude: float
|
37
|
+
sigma: float
|
38
|
+
waveform_type: Literal["Gaussian"] = "Gaussian"
|
39
|
+
|
40
|
+
|
41
|
+
@dataclass
|
42
|
+
class DragCosineWaveform(_Waveform): # pragma: no cover
|
43
|
+
duration_ns: int
|
44
|
+
amplitude: float
|
45
|
+
drag: float
|
46
|
+
buffer_ns: int
|
47
|
+
center: float
|
48
|
+
waveform_type: Literal["DragCosineWaveform"] = "DragCosineWaveform"
|
49
|
+
|
50
|
+
|
51
|
+
Waveform = Annotated[
|
52
|
+
ConstantWaveform | GaussianWaveform | DragCosineWaveform,
|
53
|
+
Discriminator("waveform_type"),
|
54
|
+
]
|
55
|
+
|
56
|
+
T = TypeVar("T", bound=Waveform)
|
57
|
+
|
58
|
+
|
59
|
+
def update_amplitude(waveform: T, amplitude: float) -> T:
|
60
|
+
"""
|
61
|
+
Update the amplitude of a waveform.
|
62
|
+
"""
|
63
|
+
return replace(waveform, amplitude=amplitude)
|
@@ -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\"-\n\x14GetJobSummaryRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"Z\n\x15GetJobSummaryResponse\x12\x41\n\x10job_summary_data\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x0ejobSummaryData\"&\n\rGetJobRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"D\n\x0eGetJobResponse\x12\x32\n\x08job_data\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x07jobData\"\x96\x01\n\x0fListJobsRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x19\n\x08job_name\x18\x02 \x01(\tR\x07jobName\x12\x12\n\x04page\x18\x03 \x01(\x05R\x04page\x12\x14\n\x05limit\x18\x04 \x01(\x05R\x05limit\x12\x1d\n\nsort_order\x18\x05 \x01(\x05R\tsortOrder\"?\n\x10ListJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructR\x04jobs\"\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\"]\n\x0b\x43opyRequest\x12(\n\x10\x66rom_device_name\x18\x01 \x01(\tR\x0e\x66romDeviceName\x12$\n\x0eto_device_name\x18\x02 \x01(\tR\x0ctoDeviceName\"\"\n\x0c\x43opyResponse\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\"\
|
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\"-\n\x14GetJobSummaryRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"Z\n\x15GetJobSummaryResponse\x12\x41\n\x10job_summary_data\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x0ejobSummaryData\"&\n\rGetJobRequest\x12\x15\n\x06job_id\x18\x01 \x01(\tR\x05jobId\"D\n\x0eGetJobResponse\x12\x32\n\x08job_data\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x07jobData\"\x96\x01\n\x0fListJobsRequest\x12\x1f\n\x0b\x64\x65vice_name\x18\x01 \x01(\tR\ndeviceName\x12\x19\n\x08job_name\x18\x02 \x01(\tR\x07jobName\x12\x12\n\x04page\x18\x03 \x01(\x05R\x04page\x12\x14\n\x05limit\x18\x04 \x01(\x05R\x05limit\x12\x1d\n\nsort_order\x18\x05 \x01(\x05R\tsortOrder\"?\n\x10ListJobsResponse\x12+\n\x04jobs\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructR\x04jobs\"\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\"]\n\x0b\x43opyRequest\x12(\n\x10\x66rom_device_name\x18\x01 \x01(\tR\x0e\x66romDeviceName\x12$\n\x0eto_device_name\x18\x02 \x01(\tR\x0ctoDeviceName\"\"\n\x0c\x43opyResponse\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\"\x1e\n\x1cGetAllDevicesMetadataRequest\"V\n\x1dGetAllDevicesMetadataResponse\x12\x35\n\tmetadatas\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructR\tmetadatas2\xb0\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\x83\x01\n\x04\x43opy\x12..boulderopalscaleupsdk.protobuf.v1.CopyRequest\x1a/.boulderopalscaleupsdk.protobuf.v1.CopyResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\"\x0f/v1/device/copy:\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\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\x94\x01\n\x08ListJobs\x12\x32.boulderopalscaleupsdk.protobuf.v1.ListJobsRequest\x1a\x33.boulderopalscaleupsdk.protobuf.v1.ListJobsResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\"\x14/v1/device/list_jobs:\x01*\x12\x8c\x01\n\x06GetJob\x12\x30.boulderopalscaleupsdk.protobuf.v1.GetJobRequest\x1a\x31.boulderopalscaleupsdk.protobuf.v1.GetJobResponse\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x12/v1/device/get_job:\x01*\x12\xa9\x01\n\rGetJobSummary\x12\x37.boulderopalscaleupsdk.protobuf.v1.GetJobSummaryRequest\x1a\x38.boulderopalscaleupsdk.protobuf.v1.GetJobSummaryResponse\"%\x82\xd3\xe4\x93\x02\x1f\"\x1a/v1/device/get_job_summary:\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*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)
|
@@ -67,23 +67,23 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
67
67
|
_globals['_GETDATAREQUEST']._serialized_start=917
|
68
68
|
_globals['_GETDATAREQUEST']._serialized_end=993
|
69
69
|
_globals['_GETDATARESPONSE']._serialized_start=996
|
70
|
-
_globals['_GETDATARESPONSE']._serialized_end=
|
71
|
-
_globals['_UPDATEREQUEST']._serialized_start=
|
72
|
-
_globals['_UPDATEREQUEST']._serialized_end=
|
73
|
-
_globals['_UPDATERESPONSE']._serialized_start=
|
74
|
-
_globals['_UPDATERESPONSE']._serialized_end=
|
75
|
-
_globals['_DELETEREQUEST']._serialized_start=
|
76
|
-
_globals['_DELETEREQUEST']._serialized_end=
|
77
|
-
_globals['_DELETERESPONSE']._serialized_start=
|
78
|
-
_globals['_DELETERESPONSE']._serialized_end=
|
79
|
-
_globals['_GETMETADATAREQUEST']._serialized_start=
|
80
|
-
_globals['_GETMETADATAREQUEST']._serialized_end=
|
81
|
-
_globals['_GETMETADATARESPONSE']._serialized_start=
|
82
|
-
_globals['_GETMETADATARESPONSE']._serialized_end=
|
83
|
-
_globals['_GETALLDEVICESMETADATAREQUEST']._serialized_start=
|
84
|
-
_globals['_GETALLDEVICESMETADATAREQUEST']._serialized_end=
|
85
|
-
_globals['_GETALLDEVICESMETADATARESPONSE']._serialized_start=
|
86
|
-
_globals['_GETALLDEVICESMETADATARESPONSE']._serialized_end=
|
87
|
-
_globals['_DEVICEMANAGERSERVICE']._serialized_start=
|
88
|
-
_globals['_DEVICEMANAGERSERVICE']._serialized_end=
|
70
|
+
_globals['_GETDATARESPONSE']._serialized_end=1194
|
71
|
+
_globals['_UPDATEREQUEST']._serialized_start=1197
|
72
|
+
_globals['_UPDATEREQUEST']._serialized_end=1336
|
73
|
+
_globals['_UPDATERESPONSE']._serialized_start=1339
|
74
|
+
_globals['_UPDATERESPONSE']._serialized_end=1485
|
75
|
+
_globals['_DELETEREQUEST']._serialized_start=1487
|
76
|
+
_globals['_DELETEREQUEST']._serialized_end=1562
|
77
|
+
_globals['_DELETERESPONSE']._serialized_start=1564
|
78
|
+
_globals['_DELETERESPONSE']._serialized_end=1600
|
79
|
+
_globals['_GETMETADATAREQUEST']._serialized_start=1602
|
80
|
+
_globals['_GETMETADATAREQUEST']._serialized_end=1655
|
81
|
+
_globals['_GETMETADATARESPONSE']._serialized_start=1657
|
82
|
+
_globals['_GETMETADATARESPONSE']._serialized_end=1731
|
83
|
+
_globals['_GETALLDEVICESMETADATAREQUEST']._serialized_start=1733
|
84
|
+
_globals['_GETALLDEVICESMETADATAREQUEST']._serialized_end=1763
|
85
|
+
_globals['_GETALLDEVICESMETADATARESPONSE']._serialized_start=1765
|
86
|
+
_globals['_GETALLDEVICESMETADATARESPONSE']._serialized_end=1851
|
87
|
+
_globals['_DEVICEMANAGERSERVICE']._serialized_start=1854
|
88
|
+
_globals['_DEVICEMANAGERSERVICE']._serialized_end=3438
|
89
89
|
# @@protoc_insertion_point(module_scope)
|
@@ -90,12 +90,14 @@ class GetDataRequest(_message.Message):
|
|
90
90
|
def __init__(self, app_name: _Optional[str] = ..., device_name: _Optional[str] = ...) -> None: ...
|
91
91
|
|
92
92
|
class GetDataResponse(_message.Message):
|
93
|
-
__slots__ = ("processor_data", "controller_data")
|
93
|
+
__slots__ = ("processor_data", "controller_data", "defcals")
|
94
94
|
PROCESSOR_DATA_FIELD_NUMBER: _ClassVar[int]
|
95
95
|
CONTROLLER_DATA_FIELD_NUMBER: _ClassVar[int]
|
96
|
+
DEFCALS_FIELD_NUMBER: _ClassVar[int]
|
96
97
|
processor_data: _struct_pb2.Struct
|
97
98
|
controller_data: _struct_pb2.Struct
|
98
|
-
|
99
|
+
defcals: _containers.RepeatedCompositeFieldContainer[_struct_pb2.Struct]
|
100
|
+
def __init__(self, processor_data: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., controller_data: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., defcals: _Optional[_Iterable[_Union[_struct_pb2.Struct, _Mapping]]] = ...) -> None: ...
|
99
101
|
|
100
102
|
class UpdateRequest(_message.Message):
|
101
103
|
__slots__ = ("app_name", "device_name", "processor_data")
|
@@ -16,7 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
|
|
16
16
|
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
|
17
17
|
|
18
18
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,boulderopalscaleupsdk/protobuf/v1/task.proto\x12!boulderopalscaleupsdk.protobuf.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/protobuf/any.proto\"\xc7\x01\n\x13StartSessionRequest\x12\x19\n\x08\x61gent_id\x18\x01 \x01(\tR\x07\x61gentId\x12\x19\n\x08\x61pp_name\x18\x02 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x03 \x01(\tR\ndeviceName\x12!\n\x0croutine_name\x18\x04 \x01(\tR\x0broutineName\x12-\n\x04\x64\x61ta\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x04\x64\x61ta\x88\x01\x01\x42\x07\n\x05_data\"\xfc\x01\n\x14UpdateSessionRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId\x12R\n\rcurrent_state\x18\x02 \x01(\x0e\x32-.boulderopalscaleupsdk.protobuf.v1.AgentStateR\x0c\x63urrentState\x12G\n\x07results\x18\x03 \x03(\x0b\x32-.boulderopalscaleupsdk.protobuf.v1.TaskResultR\x07results\x12(\n\x10task_in_progress\x18\x04 \x03(\tR\x0etaskInProgress\"\
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n,boulderopalscaleupsdk/protobuf/v1/task.proto\x12!boulderopalscaleupsdk.protobuf.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/protobuf/any.proto\"\xc7\x01\n\x13StartSessionRequest\x12\x19\n\x08\x61gent_id\x18\x01 \x01(\tR\x07\x61gentId\x12\x19\n\x08\x61pp_name\x18\x02 \x01(\tR\x07\x61ppName\x12\x1f\n\x0b\x64\x65vice_name\x18\x03 \x01(\tR\ndeviceName\x12!\n\x0croutine_name\x18\x04 \x01(\tR\x0broutineName\x12-\n\x04\x64\x61ta\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x04\x64\x61ta\x88\x01\x01\x42\x07\n\x05_data\"\xfc\x01\n\x14UpdateSessionRequest\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId\x12R\n\rcurrent_state\x18\x02 \x01(\x0e\x32-.boulderopalscaleupsdk.protobuf.v1.AgentStateR\x0c\x63urrentState\x12G\n\x07results\x18\x03 \x03(\x0b\x32-.boulderopalscaleupsdk.protobuf.v1.TaskResultR\x07results\x12(\n\x10task_in_progress\x18\x04 \x03(\tR\x0etaskInProgress\"\xc3\x03\n\x12\x41gentTasksResponse\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId\x12U\n\x0ctarget_state\x18\x02 \x01(\x0e\x32-.boulderopalscaleupsdk.protobuf.v1.AgentStateH\x00R\x0btargetState\x88\x01\x01\x12=\n\x05tasks\x18\x03 \x03(\x0b\x32\'.boulderopalscaleupsdk.protobuf.v1.TaskR\x05tasks\x12)\n\x10invalidate_tasks\x18\x04 \x03(\tR\x0finvalidateTasks\x12\x66\n\x0bretry_tasks\x18\x05 \x03(\x0b\x32\x45.boulderopalscaleupsdk.protobuf.v1.AgentTasksResponse.RetryTasksEntryR\nretryTasks\x12\x15\n\x06job_id\x18\x06 \x01(\tR\x05jobId\x1a=\n\x0fRetryTasksEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0f\n\r_target_state\"\x94\x02\n\x04Task\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12\x1b\n\ttask_type\x18\x03 \x01(\tR\x08taskType\x12(\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyR\x04\x64\x61ta\x12,\n\x0ftimeout_seconds\x18\x05 \x01(\x05H\x00R\x0etimeoutSeconds\x88\x01\x01\x12\x1f\n\x08\x64\x65\x61\x64line\x18\x06 \x01(\x03H\x01R\x08\x64\x65\x61\x64line\x88\x01\x01\x12\x1d\n\ndepends_on\x18\x07 \x03(\tR\tdependsOnB\x12\n\x10_timeout_secondsB\x0b\n\t_deadline\"\xed\x01\n\nTaskResult\x12\x17\n\x07task_id\x18\x01 \x01(\tR\x06taskId\x12\x1d\n\nsession_id\x18\x03 \x01(\tR\tsessionId\x12\x1f\n\x0bresult_type\x18\x04 \x01(\tR\nresultType\x12.\n\x06result\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x06result\x12J\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x32.boulderopalscaleupsdk.protobuf.v1.TaskErrorDetailH\x00R\x05\x65rrorB\n\n\x08response\"{\n\x0fTaskErrorDetail\x12@\n\x04\x63ode\x18\x01 \x01(\x0e\x32,.boulderopalscaleupsdk.protobuf.v1.TaskErrorR\x04\x63ode\x12\x1b\n\x06\x64\x65tail\x18\x02 \x01(\tH\x00R\x06\x64\x65tail\x88\x01\x01\x42\t\n\x07_detail*\xdd\x01\n\nAgentState\x12\x1b\n\x17\x41GENT_STATE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41GENT_STATE_ACTIVE_SESSION\x10\x01\x12\x1b\n\x17\x41GENT_STATE_ACTIVE_IDLE\x10\x02\x12)\n%AGENT_STATE_SHUTDOWN_CLIENT_INITIATED\x10\x03\x12*\n&AGENT_STATE_SHUTDOWN_MANAGER_INITIATED\x10\x04\x12\x1e\n\x1a\x41GENT_STATE_SHUTDOWN_FAULT\x10\x05*G\n\tTaskError\x12\x1a\n\x16TASK_ERROR_UNSPECIFIED\x10\x00\x12\x1e\n\x1aTASK_ERROR_NOT_IMPLEMENTED\x10\x01\x32\xe0\x02\n\x13\x41gentManagerService\x12\xa1\x01\n\x0cStartSession\x12\x36.boulderopalscaleupsdk.protobuf.v1.StartSessionRequest\x1a\x35.boulderopalscaleupsdk.protobuf.v1.AgentTasksResponse\"\"\x82\xd3\xe4\x93\x02\x1c\"\x17/v1/agent/start_session:\x01*\x12\xa4\x01\n\rUpdateSession\x12\x37.boulderopalscaleupsdk.protobuf.v1.UpdateSessionRequest\x1a\x35.boulderopalscaleupsdk.protobuf.v1.AgentTasksResponse\"#\x82\xd3\xe4\x93\x02\x1d\"\x18/v1/agent/update_session:\x01*B\xa8\x02\n%com.boulderopalscaleupsdk.protobuf.v1B\tTaskProtoP\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)
|
@@ -30,24 +30,24 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
30
30
|
_globals['_AGENTMANAGERSERVICE'].methods_by_name['StartSession']._serialized_options = b'\202\323\344\223\002\034\"\027/v1/agent/start_session:\001*'
|
31
31
|
_globals['_AGENTMANAGERSERVICE'].methods_by_name['UpdateSession']._loaded_options = None
|
32
32
|
_globals['_AGENTMANAGERSERVICE'].methods_by_name['UpdateSession']._serialized_options = b'\202\323\344\223\002\035\"\030/v1/agent/update_session:\001*'
|
33
|
-
_globals['_AGENTSTATE']._serialized_start=
|
34
|
-
_globals['_AGENTSTATE']._serialized_end=
|
35
|
-
_globals['_TASKERROR']._serialized_start=
|
36
|
-
_globals['_TASKERROR']._serialized_end=
|
33
|
+
_globals['_AGENTSTATE']._serialized_start=1696
|
34
|
+
_globals['_AGENTSTATE']._serialized_end=1917
|
35
|
+
_globals['_TASKERROR']._serialized_start=1919
|
36
|
+
_globals['_TASKERROR']._serialized_end=1990
|
37
37
|
_globals['_STARTSESSIONREQUEST']._serialized_start=141
|
38
38
|
_globals['_STARTSESSIONREQUEST']._serialized_end=340
|
39
39
|
_globals['_UPDATESESSIONREQUEST']._serialized_start=343
|
40
40
|
_globals['_UPDATESESSIONREQUEST']._serialized_end=595
|
41
41
|
_globals['_AGENTTASKSRESPONSE']._serialized_start=598
|
42
|
-
_globals['_AGENTTASKSRESPONSE']._serialized_end=
|
43
|
-
_globals['_AGENTTASKSRESPONSE_RETRYTASKSENTRY']._serialized_start=
|
44
|
-
_globals['_AGENTTASKSRESPONSE_RETRYTASKSENTRY']._serialized_end=
|
45
|
-
_globals['_TASK']._serialized_start=
|
46
|
-
_globals['_TASK']._serialized_end=
|
47
|
-
_globals['_TASKRESULT']._serialized_start=
|
48
|
-
_globals['_TASKRESULT']._serialized_end=
|
49
|
-
_globals['_TASKERRORDETAIL']._serialized_start=
|
50
|
-
_globals['_TASKERRORDETAIL']._serialized_end=
|
51
|
-
_globals['_AGENTMANAGERSERVICE']._serialized_start=
|
52
|
-
_globals['_AGENTMANAGERSERVICE']._serialized_end=
|
42
|
+
_globals['_AGENTTASKSRESPONSE']._serialized_end=1049
|
43
|
+
_globals['_AGENTTASKSRESPONSE_RETRYTASKSENTRY']._serialized_start=971
|
44
|
+
_globals['_AGENTTASKSRESPONSE_RETRYTASKSENTRY']._serialized_end=1032
|
45
|
+
_globals['_TASK']._serialized_start=1052
|
46
|
+
_globals['_TASK']._serialized_end=1328
|
47
|
+
_globals['_TASKRESULT']._serialized_start=1331
|
48
|
+
_globals['_TASKRESULT']._serialized_end=1568
|
49
|
+
_globals['_TASKERRORDETAIL']._serialized_start=1570
|
50
|
+
_globals['_TASKERRORDETAIL']._serialized_end=1693
|
51
|
+
_globals['_AGENTMANAGERSERVICE']._serialized_start=1993
|
52
|
+
_globals['_AGENTMANAGERSERVICE']._serialized_end=2345
|
53
53
|
# @@protoc_insertion_point(module_scope)
|
@@ -57,7 +57,7 @@ class UpdateSessionRequest(_message.Message):
|
|
57
57
|
def __init__(self, session_id: _Optional[str] = ..., current_state: _Optional[_Union[AgentState, str]] = ..., results: _Optional[_Iterable[_Union[TaskResult, _Mapping]]] = ..., task_in_progress: _Optional[_Iterable[str]] = ...) -> None: ...
|
58
58
|
|
59
59
|
class AgentTasksResponse(_message.Message):
|
60
|
-
__slots__ = ("session_id", "target_state", "tasks", "invalidate_tasks", "retry_tasks")
|
60
|
+
__slots__ = ("session_id", "target_state", "tasks", "invalidate_tasks", "retry_tasks", "job_id")
|
61
61
|
class RetryTasksEntry(_message.Message):
|
62
62
|
__slots__ = ("key", "value")
|
63
63
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
@@ -70,12 +70,14 @@ class AgentTasksResponse(_message.Message):
|
|
70
70
|
TASKS_FIELD_NUMBER: _ClassVar[int]
|
71
71
|
INVALIDATE_TASKS_FIELD_NUMBER: _ClassVar[int]
|
72
72
|
RETRY_TASKS_FIELD_NUMBER: _ClassVar[int]
|
73
|
+
JOB_ID_FIELD_NUMBER: _ClassVar[int]
|
73
74
|
session_id: str
|
74
75
|
target_state: AgentState
|
75
76
|
tasks: _containers.RepeatedCompositeFieldContainer[Task]
|
76
77
|
invalidate_tasks: _containers.RepeatedScalarFieldContainer[str]
|
77
78
|
retry_tasks: _containers.ScalarMap[str, str]
|
78
|
-
|
79
|
+
job_id: str
|
80
|
+
def __init__(self, session_id: _Optional[str] = ..., target_state: _Optional[_Union[AgentState, str]] = ..., tasks: _Optional[_Iterable[_Union[Task, _Mapping]]] = ..., invalidate_tasks: _Optional[_Iterable[str]] = ..., retry_tasks: _Optional[_Mapping[str, str]] = ..., job_id: _Optional[str] = ...) -> None: ...
|
79
81
|
|
80
82
|
class Task(_message.Message):
|
81
83
|
__slots__ = ("task_id", "session_id", "task_type", "data", "timeout_seconds", "deadline", "depends_on")
|
@@ -1,6 +1,21 @@
|
|
1
|
+
# Copyright 2025 Q-CTRL. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Q-CTRL Terms of service (the "License"). Unauthorized
|
4
|
+
# copying or use of this file, via any medium, is strictly prohibited.
|
5
|
+
# Proprietary and confidential. You may not use this file except in compliance
|
6
|
+
# with the License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# https://q-ctrl.com/terms
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS. See the
|
12
|
+
# License for the specific language.
|
13
|
+
|
1
14
|
"""Routine library."""
|
2
15
|
|
3
|
-
__all__ = ["ResonatorMapping", "Routine"]
|
16
|
+
__all__ = ["ResonatorMapping", "Routine", "TransmonDiscovery", "TransmonRetuning"]
|
4
17
|
|
5
18
|
from .common import Routine
|
6
19
|
from .resonator_mapping import ResonatorMapping
|
20
|
+
from .transmon_discovery import TransmonDiscovery
|
21
|
+
from .transmon_retuning import TransmonRetuning
|
@@ -1,3 +1,16 @@
|
|
1
|
+
# Copyright 2025 Q-CTRL. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Q-CTRL Terms of service (the "License"). Unauthorized
|
4
|
+
# copying or use of this file, via any medium, is strictly prohibited.
|
5
|
+
# Proprietary and confidential. You may not use this file except in compliance
|
6
|
+
# with the License. You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# https://q-ctrl.com/terms
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS. See the
|
12
|
+
# License for the specific language.
|
13
|
+
|
1
14
|
from pydantic import BaseModel, ConfigDict
|
2
15
|
|
3
16
|
|