boulder-opal-scale-up-sdk 1.0.6__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.6.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/METADATA +4 -6
- {boulder_opal_scale_up_sdk-1.0.6.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/RECORD +46 -39
- boulderopalscaleupsdk/common/dtypes.py +36 -10
- boulderopalscaleupsdk/device/controller/qblox.py +159 -54
- 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 +3 -3
- boulderopalscaleupsdk/experiments/power_rabi_ef.py +3 -3
- 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 +3 -3
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_power.py +1 -1
- boulderopalscaleupsdk/experiments/t1.py +1 -1
- boulderopalscaleupsdk/experiments/t2.py +2 -2
- 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/waveforms.py +15 -0
- 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 +10 -18
- 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/__init__.py +2 -0
- boulderopalscaleupsdk/routines/coupler_discovery.py +37 -0
- boulderopalscaleupsdk/routines/one_qubit_calibration.py +4 -0
- boulderopalscaleupsdk/routines/resonator_mapping.py +1 -1
- boulderopalscaleupsdk/routines/transmon_retuning.py +0 -4
- boulderopalscaleupsdk/solutions/__init__.py +22 -0
- boulderopalscaleupsdk/solutions/common.py +23 -0
- boulderopalscaleupsdk/solutions/placeholder_solution.py +28 -0
- boulderopalscaleupsdk/third_party/quantum_machines/__init__.py +15 -0
- boulderopalscaleupsdk/third_party/quantum_machines/config.py +0 -3
- {boulder_opal_scale_up_sdk-1.0.6.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/LICENSE +0 -0
- {boulder_opal_scale_up_sdk-1.0.6.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/WHEEL +0 -0
@@ -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=1978
|
94
|
-
_globals['_UNMASKRESPONSE']._serialized_end=2014
|
95
|
-
_globals['_DEVICEMANAGERSERVICE']._serialized_start=2116
|
96
|
-
_globals['_DEVICEMANAGERSERVICE']._serialized_end=3836
|
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]
|
@@ -140,14 +126,20 @@ class GetMetadataResponse(_message.Message):
|
|
140
126
|
def __init__(self, metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
|
141
127
|
|
142
128
|
class GetAllDevicesMetadataRequest(_message.Message):
|
143
|
-
__slots__ = ()
|
144
|
-
|
129
|
+
__slots__ = ("limit", "next_cursor")
|
130
|
+
LIMIT_FIELD_NUMBER: _ClassVar[int]
|
131
|
+
NEXT_CURSOR_FIELD_NUMBER: _ClassVar[int]
|
132
|
+
limit: int
|
133
|
+
next_cursor: str
|
134
|
+
def __init__(self, limit: _Optional[int] = ..., next_cursor: _Optional[str] = ...) -> None: ...
|
145
135
|
|
146
136
|
class GetAllDevicesMetadataResponse(_message.Message):
|
147
|
-
__slots__ = ("metadatas",)
|
137
|
+
__slots__ = ("metadatas", "next_cursor")
|
148
138
|
METADATAS_FIELD_NUMBER: _ClassVar[int]
|
139
|
+
NEXT_CURSOR_FIELD_NUMBER: _ClassVar[int]
|
149
140
|
metadatas: _containers.RepeatedCompositeFieldContainer[_struct_pb2.Struct]
|
150
|
-
|
141
|
+
next_cursor: str
|
142
|
+
def __init__(self, metadatas: _Optional[_Iterable[_Union[_struct_pb2.Struct, _Mapping]]] = ..., next_cursor: _Optional[str] = ...) -> None: ...
|
151
143
|
|
152
144
|
class MaskRequest(_message.Message):
|
153
145
|
__slots__ = ("mode", "device_name", "elements")
|
@@ -20,11 +20,6 @@ class DeviceManagerServiceStub(object):
|
|
20
20
|
request_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CreateRequest.SerializeToString,
|
21
21
|
response_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CreateResponse.FromString,
|
22
22
|
)
|
23
|
-
self.Copy = channel.unary_unary(
|
24
|
-
'/boulderopalscaleupsdk.protobuf.v1.DeviceManagerService/Copy',
|
25
|
-
request_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CopyRequest.SerializeToString,
|
26
|
-
response_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CopyResponse.FromString,
|
27
|
-
)
|
28
23
|
self.GetData = channel.unary_unary(
|
29
24
|
'/boulderopalscaleupsdk.protobuf.v1.DeviceManagerService/GetData',
|
30
25
|
request_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.GetDataRequest.SerializeToString,
|
@@ -83,13 +78,6 @@ class DeviceManagerServiceServicer(object):
|
|
83
78
|
context.set_details('Method not implemented!')
|
84
79
|
raise NotImplementedError('Method not implemented!')
|
85
80
|
|
86
|
-
def Copy(self, request, context):
|
87
|
-
"""Make a copy of an existing device with a new name
|
88
|
-
"""
|
89
|
-
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
90
|
-
context.set_details('Method not implemented!')
|
91
|
-
raise NotImplementedError('Method not implemented!')
|
92
|
-
|
93
81
|
def GetData(self, request, context):
|
94
82
|
"""Retrieve the device and controller states.
|
95
83
|
"""
|
@@ -161,11 +149,6 @@ def add_DeviceManagerServiceServicer_to_server(servicer, server):
|
|
161
149
|
request_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CreateRequest.FromString,
|
162
150
|
response_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CreateResponse.SerializeToString,
|
163
151
|
),
|
164
|
-
'Copy': grpc.unary_unary_rpc_method_handler(
|
165
|
-
servicer.Copy,
|
166
|
-
request_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CopyRequest.FromString,
|
167
|
-
response_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CopyResponse.SerializeToString,
|
168
|
-
),
|
169
152
|
'GetData': grpc.unary_unary_rpc_method_handler(
|
170
153
|
servicer.GetData,
|
171
154
|
request_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.GetDataRequest.FromString,
|
@@ -239,23 +222,6 @@ class DeviceManagerService(object):
|
|
239
222
|
options, channel_credentials,
|
240
223
|
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
241
224
|
|
242
|
-
@staticmethod
|
243
|
-
def Copy(request,
|
244
|
-
target,
|
245
|
-
options=(),
|
246
|
-
channel_credentials=None,
|
247
|
-
call_credentials=None,
|
248
|
-
insecure=False,
|
249
|
-
compression=None,
|
250
|
-
wait_for_ready=None,
|
251
|
-
timeout=None,
|
252
|
-
metadata=None):
|
253
|
-
return grpc.experimental.unary_unary(request, target, '/boulderopalscaleupsdk.protobuf.v1.DeviceManagerService/Copy',
|
254
|
-
boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CopyRequest.SerializeToString,
|
255
|
-
boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_device__pb2.CopyResponse.FromString,
|
256
|
-
options, channel_credentials,
|
257
|
-
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
258
|
-
|
259
225
|
@staticmethod
|
260
226
|
def GetData(request,
|
261
227
|
target,
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: boulderopalscaleupsdk/protobuf/v1/resource.proto
|
4
|
+
# Protobuf Python Version: 5.26.1
|
5
|
+
"""Generated protocol buffer code."""
|
6
|
+
from google.protobuf import descriptor as _descriptor
|
7
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
8
|
+
from google.protobuf import symbol_database as _symbol_database
|
9
|
+
from google.protobuf.internal import builder as _builder
|
10
|
+
# @@protoc_insertion_point(imports)
|
11
|
+
|
12
|
+
_sym_db = _symbol_database.Default()
|
13
|
+
|
14
|
+
|
15
|
+
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
|
16
|
+
|
17
|
+
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n0boulderopalscaleupsdk/protobuf/v1/resource.proto\x12!boulderopalscaleupsdk.protobuf.v1\x1a\x1cgoogle/api/annotations.proto\"{\n\x0e\x41\x63quireRequest\x12#\n\rresource_name\x18\x01 \x01(\tR\x0cresourceName\x12!\n\x0cresource_key\x18\x02 \x01(\tR\x0bresourceKey\x12!\n\x0cprincipal_id\x18\x03 \x01(\tR\x0bprincipalId\"\x9e\x01\n\x0f\x41\x63quireResponse\x12\x1f\n\x0b\x61\x63quired_by\x18\x01 \x01(\tR\nacquiredBy\x12(\n\x10\x61\x63quired_by_name\x18\x02 \x01(\tR\x0e\x61\x63quiredByName\x12\x1f\n\x0b\x61\x63quired_at\x18\x03 \x01(\tR\nacquiredAt\x12\x1f\n\x0bretry_after\x18\x04 \x01(\x05R\nretryAfter\"\xb9\x01\n\x0eReleaseRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n\tprincipal\x18\x02 \x01(\tR\tprincipal\x12\x1b\n\tissued_at\x18\x03 \x01(\tR\x08issuedAt\x12\x1d\n\nexpires_at\x18\x04 \x01(\tR\texpiresAt\x12\x1a\n\x08resource\x18\x05 \x01(\tR\x08resource\x12!\n\x0cresource_key\x18\x06 \x01(\tR\x0bresourceKey\"A\n\x0fReleaseResponse\x12\x18\n\x07success\x18\x01 \x01(\x08R\x07success\x12\x14\n\x05\x65rror\x18\x02 \x01(\tR\x05\x65rror2\xc0\x02\n\x16ResourceManagerService\x12\x91\x01\n\x07\x41\x63quire\x12\x31.boulderopalscaleupsdk.protobuf.v1.AcquireRequest\x1a\x32.boulderopalscaleupsdk.protobuf.v1.AcquireResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\"\x14/v1/resource/acquire:\x01*\x12\x91\x01\n\x07Release\x12\x31.boulderopalscaleupsdk.protobuf.v1.ReleaseRequest\x1a\x32.boulderopalscaleupsdk.protobuf.v1.ReleaseResponse\"\x1f\x82\xd3\xe4\x93\x02\x19\"\x14/v1/resource/release:\x01*B\xac\x02\n%com.boulderopalscaleupsdk.protobuf.v1B\rResourceProtoP\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')
|
19
|
+
|
20
|
+
_globals = globals()
|
21
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
22
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'boulderopalscaleupsdk.protobuf.v1.resource_pb2', _globals)
|
23
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
24
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
25
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n%com.boulderopalscaleupsdk.protobuf.v1B\rResourceProtoP\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'
|
26
|
+
_globals['_RESOURCEMANAGERSERVICE'].methods_by_name['Acquire']._loaded_options = None
|
27
|
+
_globals['_RESOURCEMANAGERSERVICE'].methods_by_name['Acquire']._serialized_options = b'\202\323\344\223\002\031\"\024/v1/resource/acquire:\001*'
|
28
|
+
_globals['_RESOURCEMANAGERSERVICE'].methods_by_name['Release']._loaded_options = None
|
29
|
+
_globals['_RESOURCEMANAGERSERVICE'].methods_by_name['Release']._serialized_options = b'\202\323\344\223\002\031\"\024/v1/resource/release:\001*'
|
30
|
+
_globals['_ACQUIREREQUEST']._serialized_start=117
|
31
|
+
_globals['_ACQUIREREQUEST']._serialized_end=240
|
32
|
+
_globals['_ACQUIRERESPONSE']._serialized_start=243
|
33
|
+
_globals['_ACQUIRERESPONSE']._serialized_end=401
|
34
|
+
_globals['_RELEASEREQUEST']._serialized_start=404
|
35
|
+
_globals['_RELEASEREQUEST']._serialized_end=589
|
36
|
+
_globals['_RELEASERESPONSE']._serialized_start=591
|
37
|
+
_globals['_RELEASERESPONSE']._serialized_end=656
|
38
|
+
_globals['_RESOURCEMANAGERSERVICE']._serialized_start=659
|
39
|
+
_globals['_RESOURCEMANAGERSERVICE']._serialized_end=979
|
40
|
+
# @@protoc_insertion_point(module_scope)
|
@@ -0,0 +1,52 @@
|
|
1
|
+
from google.api import annotations_pb2 as _annotations_pb2
|
2
|
+
from google.protobuf import descriptor as _descriptor
|
3
|
+
from google.protobuf import message as _message
|
4
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
5
|
+
|
6
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
7
|
+
|
8
|
+
class AcquireRequest(_message.Message):
|
9
|
+
__slots__ = ("resource_name", "resource_key", "principal_id")
|
10
|
+
RESOURCE_NAME_FIELD_NUMBER: _ClassVar[int]
|
11
|
+
RESOURCE_KEY_FIELD_NUMBER: _ClassVar[int]
|
12
|
+
PRINCIPAL_ID_FIELD_NUMBER: _ClassVar[int]
|
13
|
+
resource_name: str
|
14
|
+
resource_key: str
|
15
|
+
principal_id: str
|
16
|
+
def __init__(self, resource_name: _Optional[str] = ..., resource_key: _Optional[str] = ..., principal_id: _Optional[str] = ...) -> None: ...
|
17
|
+
|
18
|
+
class AcquireResponse(_message.Message):
|
19
|
+
__slots__ = ("acquired_by", "acquired_by_name", "acquired_at", "retry_after")
|
20
|
+
ACQUIRED_BY_FIELD_NUMBER: _ClassVar[int]
|
21
|
+
ACQUIRED_BY_NAME_FIELD_NUMBER: _ClassVar[int]
|
22
|
+
ACQUIRED_AT_FIELD_NUMBER: _ClassVar[int]
|
23
|
+
RETRY_AFTER_FIELD_NUMBER: _ClassVar[int]
|
24
|
+
acquired_by: str
|
25
|
+
acquired_by_name: str
|
26
|
+
acquired_at: str
|
27
|
+
retry_after: int
|
28
|
+
def __init__(self, acquired_by: _Optional[str] = ..., acquired_by_name: _Optional[str] = ..., acquired_at: _Optional[str] = ..., retry_after: _Optional[int] = ...) -> None: ...
|
29
|
+
|
30
|
+
class ReleaseRequest(_message.Message):
|
31
|
+
__slots__ = ("id", "principal", "issued_at", "expires_at", "resource", "resource_key")
|
32
|
+
ID_FIELD_NUMBER: _ClassVar[int]
|
33
|
+
PRINCIPAL_FIELD_NUMBER: _ClassVar[int]
|
34
|
+
ISSUED_AT_FIELD_NUMBER: _ClassVar[int]
|
35
|
+
EXPIRES_AT_FIELD_NUMBER: _ClassVar[int]
|
36
|
+
RESOURCE_FIELD_NUMBER: _ClassVar[int]
|
37
|
+
RESOURCE_KEY_FIELD_NUMBER: _ClassVar[int]
|
38
|
+
id: str
|
39
|
+
principal: str
|
40
|
+
issued_at: str
|
41
|
+
expires_at: str
|
42
|
+
resource: str
|
43
|
+
resource_key: str
|
44
|
+
def __init__(self, id: _Optional[str] = ..., principal: _Optional[str] = ..., issued_at: _Optional[str] = ..., expires_at: _Optional[str] = ..., resource: _Optional[str] = ..., resource_key: _Optional[str] = ...) -> None: ...
|
45
|
+
|
46
|
+
class ReleaseResponse(_message.Message):
|
47
|
+
__slots__ = ("success", "error")
|
48
|
+
SUCCESS_FIELD_NUMBER: _ClassVar[int]
|
49
|
+
ERROR_FIELD_NUMBER: _ClassVar[int]
|
50
|
+
success: bool
|
51
|
+
error: str
|
52
|
+
def __init__(self, success: bool = ..., error: _Optional[str] = ...) -> None: ...
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
3
|
+
import grpc
|
4
|
+
|
5
|
+
from boulderopalscaleupsdk.protobuf.v1 import resource_pb2 as boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2
|
6
|
+
|
7
|
+
|
8
|
+
class ResourceManagerServiceStub(object):
|
9
|
+
"""Resource manager service.
|
10
|
+
"""
|
11
|
+
|
12
|
+
def __init__(self, channel):
|
13
|
+
"""Constructor.
|
14
|
+
|
15
|
+
Args:
|
16
|
+
channel: A grpc.Channel.
|
17
|
+
"""
|
18
|
+
self.Acquire = channel.unary_unary(
|
19
|
+
'/boulderopalscaleupsdk.protobuf.v1.ResourceManagerService/Acquire',
|
20
|
+
request_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.AcquireRequest.SerializeToString,
|
21
|
+
response_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.AcquireResponse.FromString,
|
22
|
+
)
|
23
|
+
self.Release = channel.unary_unary(
|
24
|
+
'/boulderopalscaleupsdk.protobuf.v1.ResourceManagerService/Release',
|
25
|
+
request_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.ReleaseRequest.SerializeToString,
|
26
|
+
response_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.ReleaseResponse.FromString,
|
27
|
+
)
|
28
|
+
|
29
|
+
|
30
|
+
class ResourceManagerServiceServicer(object):
|
31
|
+
"""Resource manager service.
|
32
|
+
"""
|
33
|
+
|
34
|
+
def Acquire(self, request, context):
|
35
|
+
"""Acquire access to the given resource.
|
36
|
+
"""
|
37
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
38
|
+
context.set_details('Method not implemented!')
|
39
|
+
raise NotImplementedError('Method not implemented!')
|
40
|
+
|
41
|
+
def Release(self, request, context):
|
42
|
+
"""Release access to the given resource.
|
43
|
+
"""
|
44
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
45
|
+
context.set_details('Method not implemented!')
|
46
|
+
raise NotImplementedError('Method not implemented!')
|
47
|
+
|
48
|
+
|
49
|
+
def add_ResourceManagerServiceServicer_to_server(servicer, server):
|
50
|
+
rpc_method_handlers = {
|
51
|
+
'Acquire': grpc.unary_unary_rpc_method_handler(
|
52
|
+
servicer.Acquire,
|
53
|
+
request_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.AcquireRequest.FromString,
|
54
|
+
response_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.AcquireResponse.SerializeToString,
|
55
|
+
),
|
56
|
+
'Release': grpc.unary_unary_rpc_method_handler(
|
57
|
+
servicer.Release,
|
58
|
+
request_deserializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.ReleaseRequest.FromString,
|
59
|
+
response_serializer=boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.ReleaseResponse.SerializeToString,
|
60
|
+
),
|
61
|
+
}
|
62
|
+
generic_handler = grpc.method_handlers_generic_handler(
|
63
|
+
'boulderopalscaleupsdk.protobuf.v1.ResourceManagerService', rpc_method_handlers)
|
64
|
+
server.add_generic_rpc_handlers((generic_handler,))
|
65
|
+
|
66
|
+
|
67
|
+
# This class is part of an EXPERIMENTAL API.
|
68
|
+
class ResourceManagerService(object):
|
69
|
+
"""Resource manager service.
|
70
|
+
"""
|
71
|
+
|
72
|
+
@staticmethod
|
73
|
+
def Acquire(request,
|
74
|
+
target,
|
75
|
+
options=(),
|
76
|
+
channel_credentials=None,
|
77
|
+
call_credentials=None,
|
78
|
+
insecure=False,
|
79
|
+
compression=None,
|
80
|
+
wait_for_ready=None,
|
81
|
+
timeout=None,
|
82
|
+
metadata=None):
|
83
|
+
return grpc.experimental.unary_unary(request, target, '/boulderopalscaleupsdk.protobuf.v1.ResourceManagerService/Acquire',
|
84
|
+
boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.AcquireRequest.SerializeToString,
|
85
|
+
boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.AcquireResponse.FromString,
|
86
|
+
options, channel_credentials,
|
87
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
88
|
+
|
89
|
+
@staticmethod
|
90
|
+
def Release(request,
|
91
|
+
target,
|
92
|
+
options=(),
|
93
|
+
channel_credentials=None,
|
94
|
+
call_credentials=None,
|
95
|
+
insecure=False,
|
96
|
+
compression=None,
|
97
|
+
wait_for_ready=None,
|
98
|
+
timeout=None,
|
99
|
+
metadata=None):
|
100
|
+
return grpc.experimental.unary_unary(request, target, '/boulderopalscaleupsdk.protobuf.v1.ResourceManagerService/Release',
|
101
|
+
boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.ReleaseRequest.SerializeToString,
|
102
|
+
boulderopalscaleupsdk_dot_protobuf_dot_v1_dot_resource__pb2.ReleaseResponse.FromString,
|
103
|
+
options, channel_credentials,
|
104
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
@@ -14,6 +14,7 @@
|
|
14
14
|
"""Routine library."""
|
15
15
|
|
16
16
|
__all__ = [
|
17
|
+
"CouplerDiscovery",
|
17
18
|
"OneQubitCalibration",
|
18
19
|
"ResonatorMapping",
|
19
20
|
"Routine",
|
@@ -23,6 +24,7 @@ __all__ = [
|
|
23
24
|
]
|
24
25
|
|
25
26
|
from .common import Routine
|
27
|
+
from .coupler_discovery import CouplerDiscovery
|
26
28
|
from .one_qubit_calibration import OneQubitCalibration
|
27
29
|
from .resonator_mapping import ResonatorMapping
|
28
30
|
from .transmon_coherence import TransmonCoherence
|
@@ -0,0 +1,37 @@
|
|
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 Routine
|
17
|
+
|
18
|
+
|
19
|
+
class CouplerDiscovery(Routine):
|
20
|
+
"""
|
21
|
+
Parameters for running a coupler discovery routine.
|
22
|
+
|
23
|
+
Attributes
|
24
|
+
----------
|
25
|
+
control_transmon : str
|
26
|
+
The reference for the transmon to use as control.
|
27
|
+
target_transmon : str
|
28
|
+
The reference for the transmon to use as target.
|
29
|
+
biases : list[float]
|
30
|
+
The biases to sweep the coupler through.
|
31
|
+
"""
|
32
|
+
|
33
|
+
_routine_name: str = PrivateAttr("coupler_discovery")
|
34
|
+
|
35
|
+
control_transmon: str
|
36
|
+
target_transmon: str
|
37
|
+
biases: list[float]
|
@@ -28,9 +28,13 @@ class OneQubitCalibration(Routine):
|
|
28
28
|
The reference for the transmon to target.
|
29
29
|
gate : "sx" or "x"
|
30
30
|
The gate to calibrate.
|
31
|
+
repetitions : list[int] or None, optional
|
32
|
+
List of repetition counts for the calibration experiment.
|
33
|
+
If not provided, a set of repetitions will be chosen based on the gate.
|
31
34
|
"""
|
32
35
|
|
33
36
|
_routine_name: str = PrivateAttr("one_qubit_calibration")
|
34
37
|
|
35
38
|
transmon: str
|
36
39
|
gate: Literal["x", "sx"]
|
40
|
+
repetitions: list[int] | None = None
|
@@ -25,7 +25,7 @@ class ResonatorMapping(Routine):
|
|
25
25
|
feedlines : list[str] or None
|
26
26
|
The feedlines to target in the routine.
|
27
27
|
If not provided, all feedlines in the device will be targeted.
|
28
|
-
run_mixer_calibration: bool
|
28
|
+
run_mixer_calibration: bool, optional
|
29
29
|
Whether to run mixer calibrations before running each program. Defaults to True.
|
30
30
|
"""
|
31
31
|
|
@@ -29,13 +29,9 @@ class TransmonRetuning(Routine):
|
|
29
29
|
spectroscopy_waveform : ConstantWaveform or None, optional
|
30
30
|
The drive pulse used during transmon spectroscopy.
|
31
31
|
Defaults to a 10,000 ns pulse whose amplitude is defined by the logic of the experiment.
|
32
|
-
force_rerun : bool, optional
|
33
|
-
Whether to rerun the entire routine regardless transmon's current calibration status.
|
34
|
-
Defaults to False.
|
35
32
|
"""
|
36
33
|
|
37
34
|
_routine_name: str = PrivateAttr("transmon_retuning")
|
38
35
|
|
39
36
|
transmon: str
|
40
37
|
spectroscopy_waveform: ConstantWaveform | None = None
|
41
|
-
force_rerun: bool = False
|
@@ -0,0 +1,22 @@
|
|
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
|
+
"""Solution library."""
|
15
|
+
|
16
|
+
__all__ = [
|
17
|
+
"PlaceholderSolution",
|
18
|
+
"Solution",
|
19
|
+
]
|
20
|
+
|
21
|
+
from .common import Solution
|
22
|
+
from .placeholder_solution import PlaceholderSolution
|
@@ -0,0 +1,23 @@
|
|
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 BaseModel, ConfigDict
|
15
|
+
|
16
|
+
|
17
|
+
class Solution(BaseModel):
|
18
|
+
model_config = ConfigDict(extra="forbid")
|
19
|
+
_solution_name: str
|
20
|
+
|
21
|
+
@property
|
22
|
+
def solution_name(self) -> str:
|
23
|
+
return self._solution_name
|
@@ -0,0 +1,28 @@
|
|
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
|
+
from typing_extensions import deprecated
|
16
|
+
|
17
|
+
from .common import Solution
|
18
|
+
|
19
|
+
|
20
|
+
@deprecated(
|
21
|
+
"This is a placeholder for a specific solution in the future.",
|
22
|
+
)
|
23
|
+
class PlaceholderSolution(Solution):
|
24
|
+
"""
|
25
|
+
Parameters for running a placeholder solution.
|
26
|
+
"""
|
27
|
+
|
28
|
+
_solution_name: str = PrivateAttr("placeholder_solution")
|
@@ -51,6 +51,21 @@ _qm_patch_targets = [
|
|
51
51
|
"qm.qua.AnalogMeasureProcess._get_loc",
|
52
52
|
"qm.qua.DigitalMeasureProcess._get_loc",
|
53
53
|
"qm.datadog_api.DatadogHandler",
|
54
|
+
"qm.qua.lib._get_loc",
|
55
|
+
"qm.qua._dsl.arbitrary._get_loc",
|
56
|
+
"qm.qua._dsl.calibration_params_update._get_loc",
|
57
|
+
"qm.qua._dsl.external_stream._get_loc",
|
58
|
+
"qm.qua._dsl.frame_rotation._get_loc",
|
59
|
+
"qm.qua._dsl.function_expressions._get_loc",
|
60
|
+
"qm.qua._dsl.phase_reset._get_loc",
|
61
|
+
"qm.qua._dsl.play._get_loc",
|
62
|
+
"qm.qua._dsl.pulses_utils._get_loc",
|
63
|
+
"qm.qua._dsl.scope_functions._get_loc",
|
64
|
+
"qm.qua._dsl.variable_handling._get_loc",
|
65
|
+
"qm.qua._dsl.wait._get_loc",
|
66
|
+
"qm.qua._dsl.measure.analog_measure_process._get_loc",
|
67
|
+
"qm.qua._dsl.measure.measure._get_loc",
|
68
|
+
"qm.qua._dsl.stream_processing.stream_processing._get_loc",
|
54
69
|
]
|
55
70
|
for target in _qm_patch_targets:
|
56
71
|
try:
|
@@ -532,9 +532,6 @@ class _BaseQuaConfig(BaseModel):
|
|
532
532
|
qm_version: str
|
533
533
|
"""The qm-qua package version used."""
|
534
534
|
|
535
|
-
version: int = 1
|
536
|
-
"""The configuration version. This is a field used in Qua's configuration API."""
|
537
|
-
|
538
535
|
oscillators: Mapping[str, OscillatorConfigType] = {}
|
539
536
|
"""The oscillators used to drive the elements."""
|
540
537
|
|
{boulder_opal_scale_up_sdk-1.0.6.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/LICENSE
RENAMED
File without changes
|
{boulder_opal_scale_up_sdk-1.0.6.dist-info → boulder_opal_scale_up_sdk-1.0.8.dist-info}/WHEEL
RENAMED
File without changes
|