boulder-opal-scale-up-sdk 1.0.5__py3-none-any.whl → 1.0.7__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 (40) hide show
  1. {boulder_opal_scale_up_sdk-1.0.5.dist-info → boulder_opal_scale_up_sdk-1.0.7.dist-info}/METADATA +2 -2
  2. {boulder_opal_scale_up_sdk-1.0.5.dist-info → boulder_opal_scale_up_sdk-1.0.7.dist-info}/RECORD +38 -28
  3. boulderopalscaleupsdk/agent/worker.py +15 -2
  4. boulderopalscaleupsdk/common/dtypes.py +48 -4
  5. boulderopalscaleupsdk/{stubs/__init__.py → constants.py} +3 -0
  6. boulderopalscaleupsdk/device/controller/qblox.py +10 -2
  7. boulderopalscaleupsdk/device/controller/quantum_machines.py +86 -17
  8. boulderopalscaleupsdk/device/processor/common.py +3 -3
  9. boulderopalscaleupsdk/errors.py +21 -0
  10. boulderopalscaleupsdk/experiments/__init__.py +8 -2
  11. boulderopalscaleupsdk/experiments/cz_spectroscopy_by_bias.py +84 -0
  12. boulderopalscaleupsdk/experiments/power_rabi.py +1 -1
  13. boulderopalscaleupsdk/experiments/power_rabi_ef.py +1 -1
  14. boulderopalscaleupsdk/experiments/ramsey_ef.py +62 -0
  15. boulderopalscaleupsdk/experiments/{readout_classifier_calibration.py → readout_classifier.py} +7 -3
  16. boulderopalscaleupsdk/experiments/readout_optimization.py +57 -0
  17. boulderopalscaleupsdk/experiments/resonator_spectroscopy_by_bias.py +2 -4
  18. boulderopalscaleupsdk/experiments/t2.py +1 -1
  19. boulderopalscaleupsdk/experiments/transmon_anharmonicity.py +0 -2
  20. boulderopalscaleupsdk/experiments/waveforms.py +15 -0
  21. boulderopalscaleupsdk/grpc_interceptors/error.py +318 -0
  22. boulderopalscaleupsdk/plotting/dtypes.py +5 -5
  23. boulderopalscaleupsdk/protobuf/v1/device_pb2.py +57 -49
  24. boulderopalscaleupsdk/protobuf/v1/device_pb2.pyi +76 -46
  25. boulderopalscaleupsdk/protobuf/v1/device_pb2_grpc.py +100 -66
  26. boulderopalscaleupsdk/protobuf/v1/job_pb2.py +47 -0
  27. boulderopalscaleupsdk/protobuf/v1/job_pb2.pyi +54 -0
  28. boulderopalscaleupsdk/protobuf/v1/job_pb2_grpc.py +138 -0
  29. boulderopalscaleupsdk/routines/__init__.py +2 -0
  30. boulderopalscaleupsdk/routines/coupler_discovery.py +37 -0
  31. boulderopalscaleupsdk/routines/transmon_retuning.py +0 -4
  32. boulderopalscaleupsdk/solutions/__init__.py +22 -0
  33. boulderopalscaleupsdk/solutions/common.py +23 -0
  34. boulderopalscaleupsdk/solutions/placeholder_solution.py +28 -0
  35. boulderopalscaleupsdk/third_party/quantum_machines/__init__.py +16 -1
  36. boulderopalscaleupsdk/third_party/quantum_machines/config.py +50 -50
  37. boulderopalscaleupsdk/stubs/dtypes.py +0 -47
  38. boulderopalscaleupsdk/stubs/maps.py +0 -18
  39. {boulder_opal_scale_up_sdk-1.0.5.dist-info → boulder_opal_scale_up_sdk-1.0.7.dist-info}/LICENSE +0 -0
  40. {boulder_opal_scale_up_sdk-1.0.5.dist-info → boulder_opal_scale_up_sdk-1.0.7.dist-info}/WHEEL +0 -0
@@ -1,47 +0,0 @@
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 pathlib import Path
15
- from typing import Any
16
-
17
- from pydantic import TypeAdapter
18
- from pydantic.dataclasses import dataclass
19
-
20
-
21
- @dataclass
22
- class StubMetadata:
23
- api_url: str
24
- app_name: str
25
- device_name: str
26
- controller_type: str
27
- routine_name: str
28
- parameters: dict[str, Any]
29
- created_at: str
30
-
31
-
32
- @dataclass
33
- class StubData:
34
- raw_data: dict[str, Any]
35
- metadata: StubMetadata | None = None
36
-
37
- def to_dict(self) -> dict[str, Any]:
38
- return TypeAdapter(type(self)).dump_python(self)
39
-
40
- @classmethod
41
- def from_str(cls, data: str) -> "StubData":
42
- return TypeAdapter(cls).validate_json(data)
43
-
44
- @classmethod
45
- def load_from_file(cls, file_path: Path) -> "StubData":
46
- with file_path.open("rb") as file:
47
- return cls.from_str(file.read().decode("utf-8"))
@@ -1,18 +0,0 @@
1
- STUB_DATA_FILE_MAPPING: dict[str, list[str]] = {
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"],
7
- "resonator_spectroscopy": ["QM/Tuna-5/resonator_spectroscopy.json"],
8
- "resonator_spectroscopy_by_power": ["QM/Tuna-5/resonator_spectroscopy_by_power.json"],
9
- "resonator_spectroscopy_by_bias": ["QM/Tuna-5/resonator_spectroscopy_by_bias.json"],
10
- "ramsey": ["QM/Tuna-5/ramsey.json"],
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)],
18
- }