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.
Files changed (44) hide show
  1. {boulder_opal_scale_up_sdk-1.0.2.dist-info → boulder_opal_scale_up_sdk-1.0.4.dist-info}/METADATA +1 -1
  2. boulder_opal_scale_up_sdk-1.0.4.dist-info/RECORD +67 -0
  3. boulderopalscaleupsdk/agent/worker.py +10 -5
  4. boulderopalscaleupsdk/common/dtypes.py +14 -1
  5. boulderopalscaleupsdk/common/typeclasses.py +22 -0
  6. boulderopalscaleupsdk/device/__init__.py +0 -8
  7. boulderopalscaleupsdk/device/common.py +0 -3
  8. boulderopalscaleupsdk/device/config_loader.py +1 -0
  9. boulderopalscaleupsdk/device/controller/qblox.py +129 -0
  10. boulderopalscaleupsdk/device/defcal.py +5 -44
  11. boulderopalscaleupsdk/device/device.py +34 -12
  12. boulderopalscaleupsdk/device/processor/__init__.py +0 -2
  13. boulderopalscaleupsdk/device/processor/common.py +37 -20
  14. boulderopalscaleupsdk/device/processor/superconducting_processor.py +28 -22
  15. boulderopalscaleupsdk/experiments/__init__.py +20 -2
  16. boulderopalscaleupsdk/experiments/chi01_scan.py +14 -8
  17. boulderopalscaleupsdk/experiments/common.py +15 -16
  18. boulderopalscaleupsdk/experiments/power_rabi.py +16 -12
  19. boulderopalscaleupsdk/experiments/power_rabi_ef.py +66 -0
  20. boulderopalscaleupsdk/experiments/ramsey.py +15 -17
  21. boulderopalscaleupsdk/experiments/readout_classifier_calibration.py +25 -5
  22. boulderopalscaleupsdk/experiments/resonator_spectroscopy.py +14 -17
  23. boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_bias.py +17 -20
  24. boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_power.py +12 -12
  25. boulderopalscaleupsdk/experiments/t1.py +46 -0
  26. boulderopalscaleupsdk/experiments/t2.py +49 -0
  27. boulderopalscaleupsdk/experiments/t2_echo.py +49 -0
  28. boulderopalscaleupsdk/experiments/transmon_anharmonicity.py +29 -26
  29. boulderopalscaleupsdk/experiments/transmon_spectroscopy.py +16 -21
  30. boulderopalscaleupsdk/experiments/waveforms.py +63 -0
  31. boulderopalscaleupsdk/plotting/dtypes.py +1 -0
  32. boulderopalscaleupsdk/protobuf/v1/device_pb2.py +20 -20
  33. boulderopalscaleupsdk/protobuf/v1/device_pb2.pyi +4 -2
  34. boulderopalscaleupsdk/protobuf/v1/task_pb2.py +16 -16
  35. boulderopalscaleupsdk/protobuf/v1/task_pb2.pyi +4 -2
  36. boulderopalscaleupsdk/routines/__init__.py +16 -1
  37. boulderopalscaleupsdk/routines/common.py +13 -0
  38. boulderopalscaleupsdk/routines/resonator_mapping.py +16 -0
  39. boulderopalscaleupsdk/routines/transmon_discovery.py +45 -0
  40. boulderopalscaleupsdk/routines/transmon_retuning.py +31 -0
  41. boulderopalscaleupsdk/stubs/maps.py +11 -2
  42. boulder_opal_scale_up_sdk-1.0.2.dist-info/RECORD +0 -60
  43. {boulder_opal_scale_up_sdk-1.0.2.dist-info → boulder_opal_scale_up_sdk-1.0.4.dist-info}/LICENSE +0 -0
  44. {boulder_opal_scale_up_sdk-1.0.2.dist-info → boulder_opal_scale_up_sdk-1.0.4.dist-info}/WHEEL +0 -0
@@ -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 PrivateAttr
2
15
 
3
16
  from boulderopalscaleupsdk.routines import Routine
@@ -12,8 +25,11 @@ class ResonatorMapping(Routine):
12
25
  feedlines : list[str] or None
13
26
  The feedlines to target in the routine.
14
27
  If not provided, all feedlines in the device will be targeted.
28
+ run_mixer_calibration: bool
29
+ Whether to run mixer calibrations before running each program. Defaults to True.
15
30
  """
16
31
 
17
32
  _routine_name: str = PrivateAttr("resonator_mapping")
18
33
 
19
34
  feedlines: list[str] | None = None
35
+ run_mixer_calibration: bool = True
@@ -0,0 +1,45 @@
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 boulderopalscaleupsdk.experiments import ConstantWaveform
17
+
18
+ from .common import Routine
19
+
20
+
21
+ class TransmonDiscovery(Routine):
22
+ """
23
+ Parameters for running a transmon discovery routine.
24
+
25
+ Parameters
26
+ ----------
27
+ transmon : str
28
+ The reference for the transmon to target.
29
+ recycle_delay_ns : int, optional
30
+ The delay between consecutive shots, in nanoseconds. Defaults to 100,000.
31
+ readout_waveform : ConstantWaveform or None, optional
32
+ The readout pulse used in transmon spectroscopy.
33
+ Defaults to a constant waveform with a duration of 10,000 ns
34
+ and an amplitude of 0.01.
35
+ spectroscopy_waveform : ConstantWaveform or None, optional
36
+ The drive pulse used during transmon spectroscopy and transmon anharmonicity.
37
+ Defaults to a 10,000 ns pulse whose amplitude is defined by the logic of the experiment.
38
+ """
39
+
40
+ _routine_name: str = PrivateAttr("transmon_discovery")
41
+
42
+ transmon: str
43
+ recycle_delay_ns: int = 100_000
44
+ readout_waveform: ConstantWaveform | None = None
45
+ spectroscopy_waveform: ConstantWaveform | None = None
@@ -0,0 +1,31 @@
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
+
15
+ from pydantic import PrivateAttr
16
+
17
+ from boulderopalscaleupsdk.routines import Routine
18
+
19
+
20
+ class TransmonRetuning(Routine):
21
+ """
22
+ Parameters for running a transmon retuning routine.
23
+
24
+ Parameters
25
+ ----------
26
+ transmon : str
27
+ The reference for the transmon to target.
28
+ """
29
+
30
+ _routine_name: str = PrivateAttr("transmon_retuning")
31
+ transmon: str
@@ -1,9 +1,18 @@
1
1
  STUB_DATA_FILE_MAPPING: dict[str, list[str]] = {
2
- "feedline_discovery": [f"QM/Tuna-5/feedline_discovery/{n}.json" for n in range(1, 7)],
3
- "resonator_mapping": [f"QM/Tuna-5/resonator_mapping/{n}.json" for n in range(1, 17)],
2
+ # Experiments
3
+ "chi01_scan": ["QM/Tuna-5/chi01_scan.json"],
4
+ "coherence_t1": ["QM/Tuna-5/coherence_t1.json"],
5
+ "coherence_t2": ["QM/Tuna-5/coherence_t2.json"],
6
+ "readout_classifier_calibration": ["QM/Tuna-5/readout_classifier_calibration.json"],
4
7
  "resonator_spectroscopy": ["QM/Tuna-5/resonator_spectroscopy.json"],
5
8
  "resonator_spectroscopy_by_power": ["QM/Tuna-5/resonator_spectroscopy_by_power.json"],
6
9
  "resonator_spectroscopy_by_bias": ["QM/Tuna-5/resonator_spectroscopy_by_bias.json"],
7
10
  "ramsey": ["QM/Tuna-5/ramsey.json"],
8
11
  "power_rabi": ["QM/Tuna-5/power_rabi.json"],
12
+ "transmon_anharmonicity": ["QM/Tuna-5/transmon_anharmonicity.json"],
13
+ "transmon_spectroscopy": ["QM/Tuna-5/transmon_spectroscopy.json"],
14
+ # Routines
15
+ "feedline_discovery": [f"QM/Tuna-5/feedline_discovery/{n}.json" for n in range(1, 7)],
16
+ "resonator_mapping": [f"QM/Tuna-5/resonator_mapping/{n}.json" for n in range(1, 17)],
17
+ "transmon_discovery": [f"QM/Tuna-5/transmon_discovery/{n}.json" for n in range(1, 8)],
9
18
  }
@@ -1,60 +0,0 @@
1
- boulderopalscaleupsdk/__init__.py,sha256=nD3YDqPiE52mmuUrIlDUrYSyljpMsDJvc5HsubBUSs4,592
2
- boulderopalscaleupsdk/agent/__init__.py,sha256=aFkAtHJDOdXA126JklxYz0ix1k4lCcLLS9DQp8zUKMk,1092
3
- boulderopalscaleupsdk/agent/worker.py,sha256=XlbjvAjQgKMpRbbI04jzVY9NzqW5nO_D5wFq7fJC-qM,7937
4
- boulderopalscaleupsdk/common/__init__.py,sha256=vLaJ1FP36xV5eX6VD7nShqxVBm3UzsBMIK1pmSiTIag,550
5
- boulderopalscaleupsdk/common/dtypes.py,sha256=1Lf-kulA0vxFMCW1E5nfHifoCTOtq76fDwQTSco_qCQ,9601
6
- boulderopalscaleupsdk/common/typeclasses.py,sha256=FZHyTcuCQH5niqFPZmIyoO2zN6mA661h8kyvDcYFryg,3033
7
- boulderopalscaleupsdk/device/__init__.py,sha256=Bbo9KYQqNZloj2H9sl2PdfFvYMDS78q1Mu0Q0q5Ze5o,727
8
- boulderopalscaleupsdk/device/common.py,sha256=ZLXpmORKQYntX7DeKZ8pd49Ju1jzidR2q2EeN3TNwTI,1909
9
- boulderopalscaleupsdk/device/config_loader.py,sha256=RxCD77Z52lVaMYcimdyxoz9V3hb1Q5ta4xk1eU7wwxM,3367
10
- boulderopalscaleupsdk/device/controller/__init__.py,sha256=ePkrCbX1ORm05fS0BEQ8cx7DPxGGN6IkUoNH6eQL1DM,1136
11
- boulderopalscaleupsdk/device/controller/base.py,sha256=xuT4VzRulknxppiQpzYYn_TwuRNfV9wHMqjN2okA8Lw,793
12
- boulderopalscaleupsdk/device/controller/qblox.py,sha256=c-wG9jAZHy6hCTO7ynKvwJbW1MPNJJh9ryfedthuuz8,22543
13
- boulderopalscaleupsdk/device/controller/quantum_machines.py,sha256=m0_zO7Cn-Ea1-ewG7qgjEnt4GXtQMvBv_oz-dnOmI9k,5320
14
- boulderopalscaleupsdk/device/controller/resolver.py,sha256=hW5U58dmJf_IGmD4EK_bbn0XU-N9autFBFHmqbRnY2Y,3812
15
- boulderopalscaleupsdk/device/defcal.py,sha256=CL9T-oy94st20NyQZWW8mHJU4Nlx2DKZ-o5x1mf6L8c,1912
16
- boulderopalscaleupsdk/device/device.py,sha256=e3jW6dTFmGAxniPLTSTRVQs5HUkSUvrqolOlv2xJKUw,1243
17
- boulderopalscaleupsdk/device/processor/__init__.py,sha256=O9d4tMcii3OOGez845qXp06D_AxYMoHr-7ICEStlNro,1038
18
- boulderopalscaleupsdk/device/processor/common.py,sha256=kRR5nufc8PoTDLxXbSeuprlCgBDrPHSdPom_go9fDOs,9136
19
- boulderopalscaleupsdk/device/processor/superconducting_processor.py,sha256=c6Au_j5db611xOJF0zy6bpOanhm-7QYAMWerfKMwjzQ,12269
20
- boulderopalscaleupsdk/experiments/__init__.py,sha256=kskcl-oMR8tRMo8_liSqmty82mtbl3WzB-IY5g88ng4,1628
21
- boulderopalscaleupsdk/experiments/chi01_scan.py,sha256=qPFa6R1IJmctRId8K-DPejX5P0LXqXUmC-NO6-xmCQU,1862
22
- boulderopalscaleupsdk/experiments/common.py,sha256=sT06O3I71iEY5AmXGRZfx-V6RQlBEq5B7hCRxnG64tM,2482
23
- boulderopalscaleupsdk/experiments/power_rabi.py,sha256=_keqv3tW10d-1vnUPTsky9FvLnjFcKF3pcnYfOyNvaI,2059
24
- boulderopalscaleupsdk/experiments/ramsey.py,sha256=R3pptmkqwHYhhlAyRbYBaSscuiB3RffodC23kKuqwFY,2050
25
- boulderopalscaleupsdk/experiments/readout_classifier_calibration.py,sha256=mUgKgKiXTv4owykR6nYj-DYZvplR5Xr9Akj36b7WGA4,732
26
- boulderopalscaleupsdk/experiments/resonator_spectroscopy.py,sha256=EmmLbDq0d-67F1D6biLlUd1-UYP4uiICSkrIeez2T1I,2191
27
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_bias.py,sha256=ypb3ZX-OCzQGy3vSlpRct5MGZmvMMZk7pi8dD9EU5VU,2765
28
- boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_power.py,sha256=N1ibW6ZWSrsRs6-es0bBGkRSc-1WeqU4pwpKRSpZBhE,2225
29
- boulderopalscaleupsdk/experiments/transmon_anharmonicity.py,sha256=5nb_wTHJ_rhNGAR7THAL2YNvBZKPFJmMwjamPKgP8ko,2706
30
- boulderopalscaleupsdk/experiments/transmon_spectroscopy.py,sha256=Ib1OdJwCE7m0Q3N_l0Mx8uKBO6GjjM56BDroLDVCBRI,2324
31
- boulderopalscaleupsdk/grpc_interceptors/__init__.py,sha256=PkdOlllLbRWycofvGCCxDY60Ydp_U0QM5l4u3Fsnno4,616
32
- boulderopalscaleupsdk/grpc_interceptors/auth.py,sha256=PSe_b9ckqhcb3xf1Y4jpn1TjfEWfokkarqfUHIz6HIs,4165
33
- boulderopalscaleupsdk/plotting/__init__.py,sha256=pkdCky3YHqc3PLRy_h9puJKAO4AqSJGebb26x7XayR4,959
34
- boulderopalscaleupsdk/plotting/dtypes.py,sha256=PlVzGpoZfrqVULPJfpRQq3JmgjUgVH7ZPdPkIys_AnE,4737
35
- boulderopalscaleupsdk/protobuf/v1/agent_pb2.py,sha256=yExXTLC3g_TnHJWkfYsF_kctsftxONyZOBtOFDTTuec,5364
36
- boulderopalscaleupsdk/protobuf/v1/agent_pb2.pyi,sha256=YJdOKaOtI2PGk7ct_LuC8_6NeKsLCXMriVEt4-0TWYM,2536
37
- boulderopalscaleupsdk/protobuf/v1/agent_pb2_grpc.py,sha256=UH8u9ZmvMjteAYKtTmA-IWSGZmhCQLHdg0_OuKCaYew,6875
38
- boulderopalscaleupsdk/protobuf/v1/device_pb2.py,sha256=lu-FLsrwT_xnG0411zN2lE1yvtpIiMF22M8hvCpP4Zk,11429
39
- boulderopalscaleupsdk/protobuf/v1/device_pb2.pyi,sha256=NCrnlIXEsTKZaXjgEdy1cXxgOu4Xli0qbUm4_mOXqf8,6527
40
- boulderopalscaleupsdk/protobuf/v1/device_pb2_grpc.py,sha256=0CtrO8gKkcfHn7flQLFAySyOVpdDgzct_EaMMF73rUY,19445
41
- boulderopalscaleupsdk/protobuf/v1/task_pb2.py,sha256=7NWFFBEPij8B9dvexRia3B_T9-oOCDwayASCglvBtO4,7086
42
- boulderopalscaleupsdk/protobuf/v1/task_pb2.pyi,sha256=QWciGKFD1AcaAhqgym0ZwNtIlNT85HhOTBdivEC6QJE,5952
43
- boulderopalscaleupsdk/protobuf/v1/task_pb2_grpc.py,sha256=yP2FZ148RmSYFHivatCXuM13oRBDA5wBwmvhZQNBTXQ,5826
44
- boulderopalscaleupsdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- boulderopalscaleupsdk/routines/__init__.py,sha256=jSrTzE_d-4z-wA8NK9akzVtUJJ_CG026qs8orMuWKfk,143
46
- boulderopalscaleupsdk/routines/common.py,sha256=Lav4eH4GJyRJXBZwmhA3b34UTgck5x4URex3SBSctwM,224
47
- boulderopalscaleupsdk/routines/resonator_mapping.py,sha256=A7Z5jGicezYMxvC4yeRrLu-MbYHfMaZ6h2AuMwBPrBo,475
48
- boulderopalscaleupsdk/stubs/__init__.py,sha256=vLaJ1FP36xV5eX6VD7nShqxVBm3UzsBMIK1pmSiTIag,550
49
- boulderopalscaleupsdk/stubs/dtypes.py,sha256=VH2QqmmaSegv03KEaZBqB-REHhvk5h3GPfQgCJTAYQE,1361
50
- boulderopalscaleupsdk/stubs/maps.py,sha256=fgEwVyaJ1i5io_NCAABJb7Cyyl_zgdjb8xot75ujw8U,575
51
- boulderopalscaleupsdk/third_party/__init__.py,sha256=b9T2IVfz9bMenSsLQuaf4A14ySinjNnSGx68hLsFHZE,596
52
- boulderopalscaleupsdk/third_party/quantum_machines/__init__.py,sha256=ORD6crMw6gtoIp8dmusdwSiU4pje739fOacOfHXSOls,2541
53
- boulderopalscaleupsdk/third_party/quantum_machines/config.py,sha256=tQsWx_nSXSFT4fRuMzuvliplyRsB9Sy70kHqsKuTA-A,20756
54
- boulderopalscaleupsdk/third_party/quantum_machines/constants.py,sha256=5PpAi6MZ53yEinBHerY2ssi30BR37JnLBWL21irpZ8Y,870
55
- boulderopalscaleupsdk/utils/__init__.py,sha256=vLaJ1FP36xV5eX6VD7nShqxVBm3UzsBMIK1pmSiTIag,550
56
- boulderopalscaleupsdk/utils/serial_utils.py,sha256=SzvY-WFD0b8IGSh6PTv7F9y1W2IPPYmj8pY3AsX-xlM,2062
57
- boulder_opal_scale_up_sdk-1.0.2.dist-info/LICENSE,sha256=wqX4S5Brcwkwo750l9grSspwm0cyMsZtZEa1Vx3_WiE,36587
58
- boulder_opal_scale_up_sdk-1.0.2.dist-info/METADATA,sha256=SPWPGe2xUsza1tnuUBCgVzXHcBrJCxCVbz0Zrr5HlII,2419
59
- boulder_opal_scale_up_sdk-1.0.2.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
60
- boulder_opal_scale_up_sdk-1.0.2.dist-info/RECORD,,