qcs-sdk-python 0.26.1rc2__tar.gz → 0.26.2rc0__tar.gz
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.
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/Cargo.lock +1 -1
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/PKG-INFO +1 -1
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/CHANGELOG.md +17 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/Cargo.toml +1 -1
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/errors.rs +8 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/isa/python.rs +35 -3
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/mod.rs +52 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/conftest.py +16 -5
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qpu/test_isa.py +8 -1
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/pyproject.toml +1 -1
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/api.pyi +1 -1
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/isa.pyi +26 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/Cargo.toml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/README-py.md +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/THIRDPARTY.yaml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/.flake8 +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/Makefile.toml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/README-py.md +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/README.md +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/THIRDPARTY.yaml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/build.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/delayed_job_retrieval.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/execute.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/libquil.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/local.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/quil_t.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/poetry.lock +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/poetry.toml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/python/stubtest-allowlist +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/scripts/check-py-api.sh +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/scripts/lint-bindings.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/scripts/patch_grpc_web.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/bin/diagnostics.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/bin/stub_gen.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/client.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/isa/edge.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/isa/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/isa/operator.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/isa/qubit.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/libquil.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/quilc.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/rpcq.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/diagnostics/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/diagnostics/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/executable.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/execution_data.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/lib.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/client.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/executable.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/execution_data.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/nonzero.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/register_data.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/api/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/api/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/execution.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/experimental/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/experimental/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/experimental/random.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/isa/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/result_data.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_allocates_for_multiple_expressions-2.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_allocates_for_multiple_expressions.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions-2.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_phases.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_set_scale_units.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_substitutes_and_reuses_gate_expressions.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_substitutes_gate_parameters.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/translation/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/translation/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qvm/execution.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qvm/http.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qvm/libquil.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qvm/mod.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qvm/python.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qvm/snapshots/qcs__qvm__test__apply_valid_parameters_to_program.snap +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/register_data.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/aspen_9_isa.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/basic_qvm.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/bell_state_response_data.hex +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/compiler-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/mocked_qpu.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/prng_test_cases.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/qcs-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/qvm_api.rs +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/qvm_isa.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/settings.toml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_fixtures/aspen-m-3.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_fixtures/device-2q.json +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_qcs_config/secrets.toml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_qcs_config/settings.toml +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/compiler/__snapshots__/test_quilc.ambr +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/compiler/test_quilc.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/execution_data/test_execution_data.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qpu/experimental/test_random.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qpu/test_api.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qpu/test_qpu.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qpu/test_translation.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qvm/test_qvm.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_client.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_diagnostics.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_executable.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_logging.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_tracing_subscriber.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/common/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/common/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/file/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/file/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/subscriber/__init__.py +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/subscriber/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/client.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/compiler/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/compiler/quilc.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/diagnostics.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/experimental/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/experimental/random.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/translation.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qvm/__init__.pyi +0 -0
- {qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qvm/api.pyi +0 -0
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
## 0.26.2-rc.0 (2026-04-22)
|
|
2
|
+
|
|
3
|
+
### Fixes
|
|
4
|
+
|
|
5
|
+
- expose list_isas and use it in Python tests (#585)
|
|
6
|
+
|
|
7
|
+
## 0.26.1 (2026-03-30)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- upgrade qcs-api-client dependencies (#581)
|
|
12
|
+
|
|
13
|
+
### Fixes
|
|
14
|
+
|
|
15
|
+
- selecting an accessor should not prefer None to Some({ rank: None }) (#579)
|
|
16
|
+
- use gzip compression for grpc (#526)
|
|
17
|
+
|
|
1
18
|
## 0.26.1-rc.2 (2026-03-30)
|
|
2
19
|
|
|
3
20
|
### Features
|
|
@@ -151,6 +151,14 @@ exception!(
|
|
|
151
151
|
"Errors raised due to failure to get an ISA."
|
|
152
152
|
);
|
|
153
153
|
|
|
154
|
+
exception!(
|
|
155
|
+
crate::qpu::ListISAsError,
|
|
156
|
+
qcs_sdk.qpu.isa,
|
|
157
|
+
ListISAsError,
|
|
158
|
+
QcsSdkError,
|
|
159
|
+
"API Errors encountered when trying to list available ISAs."
|
|
160
|
+
);
|
|
161
|
+
|
|
154
162
|
exception!(
|
|
155
163
|
crate::qpu::isa::python::SerializeIsaError,
|
|
156
164
|
qcs_sdk.qpu.isa,
|
|
@@ -10,7 +10,11 @@ use pyo3_stub_gen::{
|
|
|
10
10
|
|
|
11
11
|
use qcs_api_client_openapi::models;
|
|
12
12
|
|
|
13
|
-
use crate::{
|
|
13
|
+
use crate::{
|
|
14
|
+
client::Qcs,
|
|
15
|
+
python::errors,
|
|
16
|
+
qpu::{get_isa, list_isas},
|
|
17
|
+
};
|
|
14
18
|
|
|
15
19
|
create_init_submodule! {
|
|
16
20
|
classes: [
|
|
@@ -24,8 +28,17 @@ create_init_submodule! {
|
|
|
24
28
|
OperationSite,
|
|
25
29
|
Parameter
|
|
26
30
|
],
|
|
27
|
-
errors: [
|
|
28
|
-
|
|
31
|
+
errors: [
|
|
32
|
+
errors::SerializeISAError,
|
|
33
|
+
errors::GetISAError,
|
|
34
|
+
errors::ListISAsError
|
|
35
|
+
],
|
|
36
|
+
funcs: [
|
|
37
|
+
py_get_instruction_set_architecture,
|
|
38
|
+
py_get_instruction_set_architecture_async,
|
|
39
|
+
py_list_instruction_set_architectures,
|
|
40
|
+
py_list_instruction_set_architectures_async
|
|
41
|
+
],
|
|
29
42
|
}
|
|
30
43
|
|
|
31
44
|
impl_repr!(Architecture);
|
|
@@ -622,3 +635,22 @@ py_function_sync_async! {
|
|
|
622
635
|
.map_err(Into::into)
|
|
623
636
|
}
|
|
624
637
|
}
|
|
638
|
+
|
|
639
|
+
py_function_sync_async! {
|
|
640
|
+
/// Fetch the names of available ``InstructionSetArchitecture``s (ISAs) from the QCS API.
|
|
641
|
+
///
|
|
642
|
+
/// :param client: The ``Qcs`` client to use. Creates one using environment configuration if unset - see https://docs.rigetti.com/qcs/references/qcs-client-configuration
|
|
643
|
+
///
|
|
644
|
+
/// :raises LoadClientError: If ``client`` was not provided to the function, and failed to load internally.
|
|
645
|
+
/// :raises ListISAsError: If there was an issue fetching the ISAs from the QCS API.
|
|
646
|
+
#[cfg_attr(feature = "stubs", gen_stub_pyfunction(module = "qcs_sdk.qpu.isa"))]
|
|
647
|
+
#[pyfunction]
|
|
648
|
+
#[pyo3(signature = (client = None))]
|
|
649
|
+
async fn list_instruction_set_architectures(client: Option<Qcs>) -> PyResult<Vec<String>> {
|
|
650
|
+
let client = client.unwrap_or_else(Qcs::load);
|
|
651
|
+
|
|
652
|
+
list_isas(&client, None)
|
|
653
|
+
.await
|
|
654
|
+
.map_err(Into::into)
|
|
655
|
+
}
|
|
656
|
+
}
|
|
@@ -107,3 +107,55 @@ pub async fn list_quantum_processors(
|
|
|
107
107
|
})
|
|
108
108
|
.await?
|
|
109
109
|
}
|
|
110
|
+
|
|
111
|
+
/// API Errors encountered when trying to list available ISAs.
|
|
112
|
+
#[derive(Debug, thiserror::Error)]
|
|
113
|
+
pub enum ListISAsError {
|
|
114
|
+
/// Failed the http call
|
|
115
|
+
#[error("Failed to list processors via API: {0}")]
|
|
116
|
+
ApiError(#[from] OpenApiError<quantum_processors_api::ListInstructionSetArchitecturesError>),
|
|
117
|
+
|
|
118
|
+
/// Pagination did not finish before timeout
|
|
119
|
+
#[error("API pagination did not finish before timeout.")]
|
|
120
|
+
TimeoutError(#[from] Elapsed),
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/// Query QCS for the names of all available ISAs.
|
|
124
|
+
pub async fn list_isas(
|
|
125
|
+
client: &Qcs,
|
|
126
|
+
timeout: Option<Duration>,
|
|
127
|
+
) -> Result<Vec<String>, ListISAsError> {
|
|
128
|
+
#[cfg(feature = "tracing")]
|
|
129
|
+
tracing::debug!("listing instruction set architectures");
|
|
130
|
+
|
|
131
|
+
let timeout = timeout.unwrap_or(DEFAULT_HTTP_API_TIMEOUT);
|
|
132
|
+
|
|
133
|
+
tokio::time::timeout(timeout, async move {
|
|
134
|
+
let mut quantum_processors = vec![];
|
|
135
|
+
let mut page_token = None;
|
|
136
|
+
|
|
137
|
+
loop {
|
|
138
|
+
let result = quantum_processors_api::list_instruction_set_architectures(
|
|
139
|
+
&client.get_openapi_client(),
|
|
140
|
+
Some(5),
|
|
141
|
+
page_token.as_deref(),
|
|
142
|
+
)
|
|
143
|
+
.await?;
|
|
144
|
+
|
|
145
|
+
let mut data = result
|
|
146
|
+
.instruction_set_architectures
|
|
147
|
+
.into_iter()
|
|
148
|
+
.map(|isa| isa.name)
|
|
149
|
+
.collect::<Vec<_>>();
|
|
150
|
+
quantum_processors.append(&mut data);
|
|
151
|
+
|
|
152
|
+
page_token = result.next_page_token;
|
|
153
|
+
if page_token.is_none() {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
Ok(quantum_processors)
|
|
159
|
+
})
|
|
160
|
+
.await?
|
|
161
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import datetime
|
|
2
3
|
import os
|
|
3
4
|
from typing import List
|
|
@@ -8,12 +9,14 @@ from _pytest.config.argparsing import Parser
|
|
|
8
9
|
from _pytest.nodes import Item
|
|
9
10
|
|
|
10
11
|
from qcs_sdk.client import QCSClient
|
|
11
|
-
from qcs_sdk.qpu.api import APIExecutionOptions,
|
|
12
|
-
from qcs_sdk.qpu.isa import
|
|
12
|
+
from qcs_sdk.qpu.api import APIExecutionOptions, ExecutionOptions
|
|
13
|
+
from qcs_sdk.qpu.isa import (
|
|
14
|
+
list_instruction_set_architectures_async,
|
|
15
|
+
InstructionSetArchitecture
|
|
16
|
+
)
|
|
13
17
|
from qcs_sdk.qvm import QVMClient
|
|
14
18
|
from qcs_sdk.compiler.quilc import QuilcClient
|
|
15
19
|
|
|
16
|
-
|
|
17
20
|
TEST_ROOT_DIR = os.path.dirname(os.path.realpath(__file__))
|
|
18
21
|
TEST_CONFIG_DIR = os.path.join(TEST_ROOT_DIR, "./_qcs_config")
|
|
19
22
|
TEST_FIXTURE_DIR = os.path.join(TEST_ROOT_DIR, "./_fixtures")
|
|
@@ -61,9 +64,17 @@ def _read_fixture(relpath: str) -> str:
|
|
|
61
64
|
return contents
|
|
62
65
|
|
|
63
66
|
|
|
67
|
+
@pytest.fixture(scope="session")
|
|
68
|
+
def available_ids() -> list[str]:
|
|
69
|
+
async def _list_isas():
|
|
70
|
+
return await list_instruction_set_architectures_async(client=QCSClient())
|
|
71
|
+
return asyncio.run(_list_isas())
|
|
72
|
+
|
|
73
|
+
|
|
64
74
|
@pytest.fixture
|
|
65
|
-
def quantum_processor_id() -> str:
|
|
66
|
-
|
|
75
|
+
def quantum_processor_id(available_ids: list[str]) -> str:
|
|
76
|
+
default = "Cepheus-1-108Q" if len(available_ids) == 0 else available_ids[0]
|
|
77
|
+
return os.getenv("TEST_LIVE_QUANTUM_PROCESSOR_ID", default)
|
|
67
78
|
|
|
68
79
|
|
|
69
80
|
@pytest.fixture
|
|
@@ -34,8 +34,15 @@ def test_instruction_set_architecture_serialization_error():
|
|
|
34
34
|
InstructionSetArchitecture.from_raw('{ "fail": true }')
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
def
|
|
37
|
+
def test_get_instruction_set_architecture_public(quantum_processor_id: str):
|
|
38
38
|
"""Successfully get a known public ISA without authentication."""
|
|
39
39
|
isa = get_instruction_set_architecture(quantum_processor_id, client=QCSClient())
|
|
40
40
|
assert type(isa) is InstructionSetArchitecture
|
|
41
41
|
|
|
42
|
+
|
|
43
|
+
@pytest.mark.asyncio
|
|
44
|
+
async def test_get_instruction_set_architecture_public_async(quantum_processor_id: str):
|
|
45
|
+
"""Successfully get a known public ISA without authentication."""
|
|
46
|
+
isa = await get_instruction_set_architecture_async(quantum_processor_id, client=QCSClient())
|
|
47
|
+
assert type(isa) is InstructionSetArchitecture
|
|
48
|
+
|
|
@@ -125,7 +125,7 @@ class ConnectionStrategy:
|
|
|
125
125
|
def __getitem__(self, key: builtins.int) -> typing.Any: ...
|
|
126
126
|
def __len__(self) -> builtins.int: ...
|
|
127
127
|
def __new__(cls, _0: builtins.str) -> ConnectionStrategy.EndpointAddress: ...
|
|
128
|
-
|
|
128
|
+
|
|
129
129
|
@typing.final
|
|
130
130
|
class EndpointId(ConnectionStrategy):
|
|
131
131
|
r"""
|
|
@@ -263,6 +263,12 @@ class InstructionSetArchitecture:
|
|
|
263
263
|
Returns [`SerializeIsaError`] if the ISA could not be serialized.
|
|
264
264
|
"""
|
|
265
265
|
|
|
266
|
+
class ListISAsError(QcsSdkError):
|
|
267
|
+
r"""
|
|
268
|
+
API Errors encountered when trying to list available ISAs.
|
|
269
|
+
"""
|
|
270
|
+
...
|
|
271
|
+
|
|
266
272
|
@typing.final
|
|
267
273
|
class Node:
|
|
268
274
|
r"""
|
|
@@ -470,3 +476,23 @@ def get_instruction_set_architecture_async(quantum_processor_id: builtins.str, c
|
|
|
470
476
|
:raises GetISAError: If there was an issue fetching the ISA from the QCS API.
|
|
471
477
|
"""
|
|
472
478
|
|
|
479
|
+
def list_instruction_set_architectures(client: typing.Optional[QCSClient] = None) -> builtins.list[builtins.str]:
|
|
480
|
+
r"""
|
|
481
|
+
Fetch the names of available ``InstructionSetArchitecture``s (ISAs) from the QCS API.
|
|
482
|
+
|
|
483
|
+
:param client: The ``Qcs`` client to use. Creates one using environment configuration if unset - see https://docs.rigetti.com/qcs/references/qcs-client-configuration
|
|
484
|
+
|
|
485
|
+
:raises LoadClientError: If ``client`` was not provided to the function, and failed to load internally.
|
|
486
|
+
:raises ListISAsError: If there was an issue fetching the ISAs from the QCS API.
|
|
487
|
+
"""
|
|
488
|
+
|
|
489
|
+
def list_instruction_set_architectures_async(client: typing.Optional[QCSClient] = None) -> collections.abc.Awaitable[builtins.list[builtins.str]]:
|
|
490
|
+
r"""
|
|
491
|
+
Fetch the names of available ``InstructionSetArchitecture``s (ISAs) from the QCS API.
|
|
492
|
+
|
|
493
|
+
:param client: The ``Qcs`` client to use. Creates one using environment configuration if unset - see https://docs.rigetti.com/qcs/references/qcs-client-configuration
|
|
494
|
+
|
|
495
|
+
:raises LoadClientError: If ``client`` was not provided to the function, and failed to load internally.
|
|
496
|
+
:raises ListISAsError: If there was an issue fetching the ISAs from the QCS API.
|
|
497
|
+
"""
|
|
498
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/delayed_job_retrieval.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/examples/parametric_compilation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/compiler/isa/operator.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/execution_data.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/python/register_data.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/experimental/mod.rs
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/experimental/python.rs
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/experimental/random.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/src/qpu/translation/python.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/bell_state_response_data.hex
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/compiler-isa-Aspen-8.json
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests/parametric_compilation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_fixtures/aspen-m-3.json
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_fixtures/device-2q.json
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_qcs_config/secrets.toml
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/_qcs_config/settings.toml
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/compiler/test_quilc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/qpu/test_translation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_diagnostics.py
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_executable.py
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/crates/lib/tests_py/test_tracing_subscriber.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/_tracing_subscriber/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/experimental/__init__.pyi
RENAMED
|
File without changes
|
{qcs_sdk_python-0.26.1rc2 → qcs_sdk_python-0.26.2rc0}/python/qcs_sdk/qpu/experimental/random.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|