qcs-sdk-python 0.17.0rc0__tar.gz → 0.17.0rc1__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.17.0rc0 → qcs_sdk_python-0.17.0rc1}/Cargo.lock +51 -15
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/Cargo.toml +4 -4
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/PKG-INFO +1 -1
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/CHANGELOG.md +19 -1
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/Cargo.toml +1 -1
- qcs_sdk_python-0.17.0rc1/crates/lib/examples/execute.rs +57 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/client.rs +7 -3
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/api.rs +40 -16
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/CHANGELOG.md +19 -1
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/Cargo.toml +1 -1
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/pyproject.toml +2 -2
- qcs_sdk_python-0.17.0rc0/crates/lib/examples/execute.rs +0 -31
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/README.md +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/Makefile.toml +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/README.md +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/build.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/delayed_job_retrieval.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/libquil.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/local.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/quil_t.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/bin/diagnostics.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/isa/edge.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/isa/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/isa/operator.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/isa/qubit.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/libquil.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/quilc.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/compiler/rpcq.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/diagnostics.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/executable.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/execution_data.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/lib.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/execution.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/result_data.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/rewrite_arithmetic.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/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.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_allocates_for_multiple_expressions.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions-2.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_phases.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_set_scale_units.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/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.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_substitutes_gate_parameters.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/translation.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qvm/execution.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qvm/http.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qvm/libquil.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qvm/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qvm/snapshots/qcs__qvm__test__apply_valid_parameters_to_program.snap +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/register_data.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/aspen_9_isa.json +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/basic_qvm.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/bell_state_response_data.hex +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/compiler-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/mocked_qpu.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/qcs-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/qvm_api.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/qvm_isa.json +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/secrets.toml +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/settings.toml +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/.flake8 +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/.stubtest-allowlist +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/Makefile.toml +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/README.md +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/build.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/poetry.lock +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/client.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/client.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/compiler/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/compiler/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/compiler/quilc.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/diagnostics.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/py.typed +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/api.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/isa.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/rewrite_arithmetic.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/translation.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qvm/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qvm/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qvm/api.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/client.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/compiler/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/compiler/quilc.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/executable.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/execution_data.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/from_py.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/grpc/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/grpc/models/controller.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/grpc/models/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/lib.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/py_sync.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/api.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/isa.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/result_data.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/rewrite_arithmetic.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/translation.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qvm/api.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qvm/mod.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/register_data.rs +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_fixtures/aspen-m-3.json +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_fixtures/device-2q.json +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_qcs_config/secrets.toml +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_qcs_config/settings.toml +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/compiler/__snapshots__/test_quilc.ambr +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/compiler/test_quilc.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/conftest.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/execution_data/test_execution_data.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qpu/test_api.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qpu/test_isa.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qpu/test_qpu.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qpu/test_rewrite_arithmetic.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qpu/test_translation.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qvm/test_qvm.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/test_client.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/test_diagnostics.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/test_executable.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/test_logging.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/client.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/client.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/compiler/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/compiler/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/compiler/quilc.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/diagnostics.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/py.typed +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qpu/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qpu/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qpu/api.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qpu/isa.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qpu/rewrite_arithmetic.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qpu/translation.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qvm/__init__.py +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qvm/__init__.pyi +0 -0
- {qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/qcs_sdk/qvm/api.pyi +0 -0
|
@@ -186,6 +186,20 @@ dependencies = [
|
|
|
186
186
|
"tower-service",
|
|
187
187
|
]
|
|
188
188
|
|
|
189
|
+
[[package]]
|
|
190
|
+
name = "backoff"
|
|
191
|
+
version = "0.4.0"
|
|
192
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
193
|
+
checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
|
|
194
|
+
dependencies = [
|
|
195
|
+
"futures-core",
|
|
196
|
+
"getrandom",
|
|
197
|
+
"instant",
|
|
198
|
+
"pin-project-lite",
|
|
199
|
+
"rand",
|
|
200
|
+
"tokio",
|
|
201
|
+
]
|
|
202
|
+
|
|
189
203
|
[[package]]
|
|
190
204
|
name = "backtrace"
|
|
191
205
|
version = "0.3.69"
|
|
@@ -584,6 +598,9 @@ name = "deranged"
|
|
|
584
598
|
version = "0.3.10"
|
|
585
599
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
586
600
|
checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
|
|
601
|
+
dependencies = [
|
|
602
|
+
"powerfmt",
|
|
603
|
+
]
|
|
587
604
|
|
|
588
605
|
[[package]]
|
|
589
606
|
name = "derive_builder"
|
|
@@ -1613,6 +1630,12 @@ dependencies = [
|
|
|
1613
1630
|
"serde",
|
|
1614
1631
|
]
|
|
1615
1632
|
|
|
1633
|
+
[[package]]
|
|
1634
|
+
name = "num-conv"
|
|
1635
|
+
version = "0.1.0"
|
|
1636
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1637
|
+
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
|
1638
|
+
|
|
1616
1639
|
[[package]]
|
|
1617
1640
|
name = "num-integer"
|
|
1618
1641
|
version = "0.1.45"
|
|
@@ -1910,6 +1933,12 @@ version = "0.3.27"
|
|
|
1910
1933
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1911
1934
|
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
|
|
1912
1935
|
|
|
1936
|
+
[[package]]
|
|
1937
|
+
name = "powerfmt"
|
|
1938
|
+
version = "0.2.0"
|
|
1939
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1940
|
+
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
|
1941
|
+
|
|
1913
1942
|
[[package]]
|
|
1914
1943
|
name = "ppv-lite86"
|
|
1915
1944
|
version = "0.2.17"
|
|
@@ -2078,7 +2107,7 @@ dependencies = [
|
|
|
2078
2107
|
|
|
2079
2108
|
[[package]]
|
|
2080
2109
|
name = "qcs"
|
|
2081
|
-
version = "0.21.0-rc.
|
|
2110
|
+
version = "0.21.0-rc.1"
|
|
2082
2111
|
dependencies = [
|
|
2083
2112
|
"assert2",
|
|
2084
2113
|
"async-trait",
|
|
@@ -2138,11 +2167,12 @@ dependencies = [
|
|
|
2138
2167
|
|
|
2139
2168
|
[[package]]
|
|
2140
2169
|
name = "qcs-api-client-common"
|
|
2141
|
-
version = "0.7.
|
|
2170
|
+
version = "0.7.10"
|
|
2142
2171
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2143
|
-
checksum = "
|
|
2172
|
+
checksum = "36b591a8d1498c533f714c6b6f420ffbab9577e6fc92b0d07d05b9e6e3689e90"
|
|
2144
2173
|
dependencies = [
|
|
2145
2174
|
"async-trait",
|
|
2175
|
+
"backoff",
|
|
2146
2176
|
"futures",
|
|
2147
2177
|
"home",
|
|
2148
2178
|
"http",
|
|
@@ -2150,6 +2180,7 @@ dependencies = [
|
|
|
2150
2180
|
"reqwest",
|
|
2151
2181
|
"serde",
|
|
2152
2182
|
"thiserror",
|
|
2183
|
+
"time",
|
|
2153
2184
|
"tokio",
|
|
2154
2185
|
"toml 0.7.8",
|
|
2155
2186
|
"tracing",
|
|
@@ -2159,10 +2190,11 @@ dependencies = [
|
|
|
2159
2190
|
|
|
2160
2191
|
[[package]]
|
|
2161
2192
|
name = "qcs-api-client-grpc"
|
|
2162
|
-
version = "0.7.
|
|
2193
|
+
version = "0.7.12"
|
|
2163
2194
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2164
|
-
checksum = "
|
|
2195
|
+
checksum = "52716630ac986eabf83be964118fa5cc109f50e3404e37b5a6a7a8e801ea96a8"
|
|
2165
2196
|
dependencies = [
|
|
2197
|
+
"backoff",
|
|
2166
2198
|
"http",
|
|
2167
2199
|
"http-body",
|
|
2168
2200
|
"hyper",
|
|
@@ -2179,6 +2211,7 @@ dependencies = [
|
|
|
2179
2211
|
"qcs-api-client-common",
|
|
2180
2212
|
"serde",
|
|
2181
2213
|
"thiserror",
|
|
2214
|
+
"tokio",
|
|
2182
2215
|
"tonic",
|
|
2183
2216
|
"tonic-build",
|
|
2184
2217
|
"tower",
|
|
@@ -2189,9 +2222,9 @@ dependencies = [
|
|
|
2189
2222
|
|
|
2190
2223
|
[[package]]
|
|
2191
2224
|
name = "qcs-api-client-openapi"
|
|
2192
|
-
version = "0.8.
|
|
2225
|
+
version = "0.8.11"
|
|
2193
2226
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2194
|
-
checksum = "
|
|
2227
|
+
checksum = "ff1892f58e793ff0d68110736583c88a442a9690ceb3e59dc65cd2daf3fbec29"
|
|
2195
2228
|
dependencies = [
|
|
2196
2229
|
"anyhow",
|
|
2197
2230
|
"qcs-api-client-common",
|
|
@@ -2201,6 +2234,7 @@ dependencies = [
|
|
|
2201
2234
|
"serde",
|
|
2202
2235
|
"serde_json",
|
|
2203
2236
|
"task-local-extensions",
|
|
2237
|
+
"tokio",
|
|
2204
2238
|
"tracing",
|
|
2205
2239
|
"url",
|
|
2206
2240
|
"urlpattern",
|
|
@@ -2208,7 +2242,7 @@ dependencies = [
|
|
|
2208
2242
|
|
|
2209
2243
|
[[package]]
|
|
2210
2244
|
name = "qcs-sdk-python"
|
|
2211
|
-
version = "0.17.0-rc.
|
|
2245
|
+
version = "0.17.0-rc.1"
|
|
2212
2246
|
dependencies = [
|
|
2213
2247
|
"async-trait",
|
|
2214
2248
|
"numpy",
|
|
@@ -2446,7 +2480,6 @@ dependencies = [
|
|
|
2446
2480
|
"num-traits",
|
|
2447
2481
|
"paste",
|
|
2448
2482
|
"pyo3",
|
|
2449
|
-
"time",
|
|
2450
2483
|
]
|
|
2451
2484
|
|
|
2452
2485
|
[[package]]
|
|
@@ -3088,12 +3121,14 @@ dependencies = [
|
|
|
3088
3121
|
|
|
3089
3122
|
[[package]]
|
|
3090
3123
|
name = "time"
|
|
3091
|
-
version = "0.3.
|
|
3124
|
+
version = "0.3.34"
|
|
3092
3125
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3093
|
-
checksum = "
|
|
3126
|
+
checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
|
|
3094
3127
|
dependencies = [
|
|
3095
3128
|
"deranged",
|
|
3096
3129
|
"itoa",
|
|
3130
|
+
"num-conv",
|
|
3131
|
+
"powerfmt",
|
|
3097
3132
|
"serde",
|
|
3098
3133
|
"time-core",
|
|
3099
3134
|
"time-macros",
|
|
@@ -3101,16 +3136,17 @@ dependencies = [
|
|
|
3101
3136
|
|
|
3102
3137
|
[[package]]
|
|
3103
3138
|
name = "time-core"
|
|
3104
|
-
version = "0.1.
|
|
3139
|
+
version = "0.1.2"
|
|
3105
3140
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3106
|
-
checksum = "
|
|
3141
|
+
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
|
3107
3142
|
|
|
3108
3143
|
[[package]]
|
|
3109
3144
|
name = "time-macros"
|
|
3110
|
-
version = "0.2.
|
|
3145
|
+
version = "0.2.17"
|
|
3111
3146
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3112
|
-
checksum = "
|
|
3147
|
+
checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
|
|
3113
3148
|
dependencies = [
|
|
3149
|
+
"num-conv",
|
|
3114
3150
|
"time-core",
|
|
3115
3151
|
]
|
|
3116
3152
|
|
|
@@ -4,9 +4,9 @@ resolver = "2"
|
|
|
4
4
|
|
|
5
5
|
[workspace.dependencies]
|
|
6
6
|
qcs-api = "0.2.1"
|
|
7
|
-
qcs-api-client-common = "0.7.
|
|
8
|
-
qcs-api-client-grpc = "0.7.
|
|
9
|
-
qcs-api-client-openapi = "0.8.
|
|
7
|
+
qcs-api-client-common = "0.7.10"
|
|
8
|
+
qcs-api-client-grpc = "0.7.12"
|
|
9
|
+
qcs-api-client-openapi = "0.8.11"
|
|
10
10
|
serde_json = "1.0.86"
|
|
11
11
|
thiserror = "1.0.37"
|
|
12
12
|
tokio = "1.34.0"
|
|
@@ -27,7 +27,7 @@ numpy = "0.20.0"
|
|
|
27
27
|
pyo3 = "0.20.0"
|
|
28
28
|
pyo3-asyncio = { version = "0.20", features = ["tokio-runtime"] }
|
|
29
29
|
pyo3-build-config = "0.20.0"
|
|
30
|
-
rigetti-pyo3 = { version = "0.3.1", features = ["complex"] }
|
|
30
|
+
rigetti-pyo3 = { version = "0.3.1", default-features = false, features = ["complex"] }
|
|
31
31
|
|
|
32
32
|
# The primary intent of these options is to reduce the binary size for Python wheels
|
|
33
33
|
# since PyPi has limits on how much storage a project can use.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## 0.21.0-rc.
|
|
1
|
+
## 0.21.0-rc.1
|
|
2
2
|
|
|
3
3
|
### Breaking Changes
|
|
4
4
|
|
|
@@ -12,6 +12,24 @@ slightly modified.
|
|
|
12
12
|
|
|
13
13
|
* put calibration in mock calibration program
|
|
14
14
|
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- Automatically retry requests that fail due to transient network errors, fgequests to cancel job no longer error due to missing target. (#443)
|
|
18
|
+
|
|
19
|
+
## 0.21.0-rc.0
|
|
20
|
+
|
|
21
|
+
### Breaking Changes
|
|
22
|
+
|
|
23
|
+
- The calibration program is now from
|
|
24
|
+
`get_quilt_calibrations` as a string. The error variants have also been
|
|
25
|
+
slightly modified.
|
|
26
|
+
|
|
27
|
+
* simplify error map
|
|
28
|
+
|
|
29
|
+
* cleanup test
|
|
30
|
+
|
|
31
|
+
* put calibration in mock calibration program
|
|
32
|
+
|
|
15
33
|
## 0.20.6
|
|
16
34
|
|
|
17
35
|
### Features
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
use std::f64::consts::PI;
|
|
2
|
+
|
|
3
|
+
use qcs::{client::Qcs, compiler::rpcq, qpu::api::ExecutionOptions, Executable};
|
|
4
|
+
|
|
5
|
+
const PROGRAM: &str = r#"
|
|
6
|
+
DECLARE ro BIT[2]
|
|
7
|
+
DECLARE theta REAL
|
|
8
|
+
RX(theta) 0
|
|
9
|
+
CNOT 0 1
|
|
10
|
+
MEASURE 0 ro[0]
|
|
11
|
+
MEASURE 1 ro[1]
|
|
12
|
+
"#;
|
|
13
|
+
|
|
14
|
+
async fn quilc_client() -> rpcq::Client {
|
|
15
|
+
let qcs = Qcs::load().await;
|
|
16
|
+
let endpoint = qcs.get_config().quilc_url();
|
|
17
|
+
rpcq::Client::new(endpoint).unwrap()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
#[tokio::main]
|
|
21
|
+
async fn main() {
|
|
22
|
+
let mut exe = Executable::from_quil(PROGRAM).with_quilc_client(Some(quilc_client().await));
|
|
23
|
+
let execution_options = ExecutionOptions::default();
|
|
24
|
+
|
|
25
|
+
// You can submit a job to a QPU and retrieve results in a single step.
|
|
26
|
+
let result = exe
|
|
27
|
+
.with_parameter("theta", 0, PI)
|
|
28
|
+
.execute_on_qpu("Ankaa-2", None, &execution_options)
|
|
29
|
+
.await
|
|
30
|
+
.expect("Program should execute successfully");
|
|
31
|
+
|
|
32
|
+
dbg!(&result);
|
|
33
|
+
|
|
34
|
+
// Or you can submit a job, then retrieve results later.
|
|
35
|
+
let handle = exe
|
|
36
|
+
.with_parameter("theta", 0, PI / 2.0)
|
|
37
|
+
.submit_to_qpu("Ankaa-2", None, &execution_options)
|
|
38
|
+
.await
|
|
39
|
+
.expect("Program should be sumbitted successfully.");
|
|
40
|
+
|
|
41
|
+
// You can use the job handle to attempt job cancellation. This will only succeed if the job
|
|
42
|
+
// has not begun executing.
|
|
43
|
+
let cancelled_result = exe.cancel_qpu_job(handle.clone()).await;
|
|
44
|
+
dbg!(&cancelled_result);
|
|
45
|
+
let cancelled = cancelled_result.is_ok();
|
|
46
|
+
|
|
47
|
+
// Retrieving results will return an error if the job was successfully cancelled.
|
|
48
|
+
let result = exe.retrieve_results(handle.clone()).await;
|
|
49
|
+
if !cancelled {
|
|
50
|
+
println!("Job was not cancelled");
|
|
51
|
+
assert!(result.is_ok());
|
|
52
|
+
} else {
|
|
53
|
+
println!("Job was cancelled");
|
|
54
|
+
assert!(result.is_err());
|
|
55
|
+
}
|
|
56
|
+
dbg!(&result);
|
|
57
|
+
}
|
|
@@ -6,7 +6,10 @@ use std::time::Duration;
|
|
|
6
6
|
|
|
7
7
|
use qcs_api_client_common::configuration::{ClientConfiguration, RefreshError};
|
|
8
8
|
use qcs_api_client_grpc::{
|
|
9
|
-
channel::{
|
|
9
|
+
channel::{
|
|
10
|
+
get_channel, parse_uri, wrap_channel_with, wrap_channel_with_retry, RefreshService,
|
|
11
|
+
RetryService,
|
|
12
|
+
},
|
|
10
13
|
services::translation::translation_client::TranslationClient,
|
|
11
14
|
};
|
|
12
15
|
use qcs_api_client_openapi::apis::configuration::Configuration as OpenApiConfiguration;
|
|
@@ -21,7 +24,7 @@ pub use qcs_api_client_openapi::apis::Error as OpenApiError;
|
|
|
21
24
|
/// It is public so that users can create gRPC clients with different APIs using a "raw" connection
|
|
22
25
|
/// initialized by this library. This ensures that the exact Tonic version used for such clients
|
|
23
26
|
/// matches what this library uses.
|
|
24
|
-
pub type GrpcConnection = RefreshService<Channel, ClientConfiguration
|
|
27
|
+
pub type GrpcConnection = RetryService<RefreshService<Channel, ClientConfiguration>>;
|
|
25
28
|
|
|
26
29
|
/// TODO: make configurable at the client level.
|
|
27
30
|
/// <https://github.com/rigetti/qcs-sdk-rust/issues/239>
|
|
@@ -88,7 +91,8 @@ impl Qcs {
|
|
|
88
91
|
) -> Result<TranslationClient<GrpcConnection>, GrpcError<RefreshError>> {
|
|
89
92
|
let uri = parse_uri(translation_grpc_endpoint)?;
|
|
90
93
|
let channel = get_channel(uri)?;
|
|
91
|
-
let service =
|
|
94
|
+
let service =
|
|
95
|
+
wrap_channel_with_retry(wrap_channel_with(channel, self.get_config().clone()));
|
|
92
96
|
Ok(TranslationClient::new(service))
|
|
93
97
|
}
|
|
94
98
|
}
|
|
@@ -8,17 +8,17 @@ use derive_builder::Builder;
|
|
|
8
8
|
use qcs_api_client_common::configuration::RefreshError;
|
|
9
9
|
pub use qcs_api_client_grpc::channel::Error as GrpcError;
|
|
10
10
|
use qcs_api_client_grpc::{
|
|
11
|
-
channel::{parse_uri, wrap_channel_with},
|
|
11
|
+
channel::{parse_uri, wrap_channel_with, wrap_channel_with_retry},
|
|
12
12
|
get_channel_with_timeout,
|
|
13
13
|
models::controller::{
|
|
14
14
|
controller_job_execution_result, data_value::Value, ControllerJobExecutionResult,
|
|
15
15
|
DataValue, EncryptedControllerJob, JobExecutionConfiguration, RealDataValue,
|
|
16
16
|
},
|
|
17
17
|
services::controller::{
|
|
18
|
-
controller_client::ControllerClient,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
GetControllerJobResultsRequest,
|
|
18
|
+
cancel_controller_jobs_request, controller_client::ControllerClient,
|
|
19
|
+
execute_controller_job_request, get_controller_job_results_request,
|
|
20
|
+
CancelControllerJobsRequest, ExecuteControllerJobRequest,
|
|
21
|
+
ExecutionOptions as InnerApiExecutionOptions, GetControllerJobResultsRequest,
|
|
22
22
|
},
|
|
23
23
|
};
|
|
24
24
|
pub use qcs_api_client_openapi::apis::Error as OpenApiError;
|
|
@@ -131,9 +131,8 @@ pub async fn submit(
|
|
|
131
131
|
/// This action is *not* atomic, and will attempt to cancel every job even when some jobs cannot be
|
|
132
132
|
/// cancelled. A job can be cancelled only if it has not yet started executing.
|
|
133
133
|
///
|
|
134
|
-
///
|
|
135
|
-
///
|
|
136
|
-
/// basis.
|
|
134
|
+
/// Cancellation is not guaranteed, as it is based on job state at the time of cancellation, and is
|
|
135
|
+
/// completed on a best effort basis.
|
|
137
136
|
///
|
|
138
137
|
/// # Arguments
|
|
139
138
|
/// * `quantum_processor_id` - The quantum processor to execute the job on. This parameter
|
|
@@ -144,20 +143,25 @@ pub async fn submit(
|
|
|
144
143
|
/// * `execution_options` - The [`ExecutionOptions`] to use. If the connection strategy used
|
|
145
144
|
/// is [`ConnectionStrategy::EndpointId`] then direct access to that endpoint
|
|
146
145
|
/// overrides the `quantum_processor_id` parameter.
|
|
146
|
+
///
|
|
147
|
+
/// # Errors
|
|
148
|
+
/// * Returns [`QpuApiError::GrpcClientError`] with [`GrpcClientError::RequestFailed`] if any of
|
|
149
|
+
/// the jobs could not be cancelled.
|
|
147
150
|
pub async fn cancel_jobs(
|
|
148
151
|
job_ids: Vec<JobId>,
|
|
149
152
|
quantum_processor_id: Option<&str>,
|
|
150
153
|
client: &Qcs,
|
|
151
154
|
execution_options: &ExecutionOptions,
|
|
152
155
|
) -> Result<(), QpuApiError> {
|
|
153
|
-
let request = CancelControllerJobsRequest {
|
|
154
|
-
job_ids: job_ids.into_iter().map(|id| id.0).collect(),
|
|
155
|
-
};
|
|
156
|
-
|
|
157
156
|
let mut controller_client = execution_options
|
|
158
157
|
.get_controller_client(client, quantum_processor_id)
|
|
159
158
|
.await?;
|
|
160
159
|
|
|
160
|
+
let request = CancelControllerJobsRequest {
|
|
161
|
+
job_ids: job_ids.into_iter().map(|id| id.0).collect(),
|
|
162
|
+
target: execution_options.get_cancel_target(quantum_processor_id),
|
|
163
|
+
};
|
|
164
|
+
|
|
161
165
|
controller_client
|
|
162
166
|
.cancel_controller_jobs(request)
|
|
163
167
|
.await
|
|
@@ -171,9 +175,8 @@ pub async fn cancel_jobs(
|
|
|
171
175
|
/// This action is *not* atomic, and will attempt to cancel a job even if it cannot be cancelled. A
|
|
172
176
|
/// job can be cancelled only if it has not yet started executing.
|
|
173
177
|
///
|
|
174
|
-
///
|
|
175
|
-
///
|
|
176
|
-
/// basis.
|
|
178
|
+
/// Cancellation is not guaranteed, as it is based on job state at the time of cancellation, and is
|
|
179
|
+
/// completed on a best effort basis.
|
|
177
180
|
///
|
|
178
181
|
/// # Arguments
|
|
179
182
|
/// * `quantum_processor_id` - The quantum processor to execute the job on. This parameter is
|
|
@@ -184,6 +187,10 @@ pub async fn cancel_jobs(
|
|
|
184
187
|
/// * `execution_options` - The [`ExecutionOptions`] to use. If the connection strategy used is
|
|
185
188
|
/// [`ConnectionStrategy::EndpointId`] then direct access to that endpoint overrides the
|
|
186
189
|
/// `quantum_processor_id` parameter.
|
|
190
|
+
///
|
|
191
|
+
/// # Errors
|
|
192
|
+
/// * Returns [`QpuApiError::GrpcClientError`] with [`GrpcClientError::RequestFailed`] if the
|
|
193
|
+
/// job could not be cancelled.
|
|
187
194
|
pub async fn cancel_job(
|
|
188
195
|
job_id: JobId,
|
|
189
196
|
quantum_processor_id: Option<&str>,
|
|
@@ -404,6 +411,20 @@ impl ExecutionOptions {
|
|
|
404
411
|
}
|
|
405
412
|
}
|
|
406
413
|
|
|
414
|
+
fn get_cancel_target(
|
|
415
|
+
&self,
|
|
416
|
+
quantum_processor_id: Option<&str>,
|
|
417
|
+
) -> Option<cancel_controller_jobs_request::Target> {
|
|
418
|
+
match self.connection_strategy() {
|
|
419
|
+
ConnectionStrategy::EndpointId(endpoint_id) => Some(
|
|
420
|
+
cancel_controller_jobs_request::Target::EndpointId(endpoint_id.to_string()),
|
|
421
|
+
),
|
|
422
|
+
ConnectionStrategy::Gateway | ConnectionStrategy::DirectAccess => quantum_processor_id
|
|
423
|
+
.map(String::from)
|
|
424
|
+
.map(cancel_controller_jobs_request::Target::QuantumProcessorId),
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
407
428
|
/// Get a controller client for the given QPU ID.
|
|
408
429
|
pub async fn get_controller_client(
|
|
409
430
|
&self,
|
|
@@ -457,7 +478,10 @@ impl ExecutionOptions {
|
|
|
457
478
|
let uri = parse_uri(address).map_err(QpuApiError::GrpcError)?;
|
|
458
479
|
let channel = get_channel_with_timeout(uri, self.timeout())
|
|
459
480
|
.map_err(|err| QpuApiError::GrpcError(err.into()))?;
|
|
460
|
-
Ok(wrap_channel_with(
|
|
481
|
+
Ok(wrap_channel_with_retry(wrap_channel_with(
|
|
482
|
+
channel,
|
|
483
|
+
client.get_config().clone(),
|
|
484
|
+
)))
|
|
461
485
|
}
|
|
462
486
|
|
|
463
487
|
async fn get_gateway_address(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## 0.17.0-rc.
|
|
1
|
+
## 0.17.0-rc.1
|
|
2
2
|
|
|
3
3
|
### Breaking Changes
|
|
4
4
|
|
|
@@ -12,6 +12,24 @@ slightly modified.
|
|
|
12
12
|
|
|
13
13
|
* put calibration in mock calibration program
|
|
14
14
|
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- Automatically retry requests that fail due to transient network errors, fgequests to cancel job no longer error due to missing target. (#443)
|
|
18
|
+
|
|
19
|
+
## 0.17.0-rc.0
|
|
20
|
+
|
|
21
|
+
### Breaking Changes
|
|
22
|
+
|
|
23
|
+
- The calibration program is now from
|
|
24
|
+
`get_quilt_calibrations` as a string. The error variants have also been
|
|
25
|
+
slightly modified.
|
|
26
|
+
|
|
27
|
+
* simplify error map
|
|
28
|
+
|
|
29
|
+
* cleanup test
|
|
30
|
+
|
|
31
|
+
* put calibration in mock calibration program
|
|
32
|
+
|
|
15
33
|
## 0.16.5
|
|
16
34
|
|
|
17
35
|
### Features
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# This is the metadata Maturin uploads to PyPI on publish
|
|
2
2
|
[project]
|
|
3
3
|
name = "qcs-sdk-python"
|
|
4
|
-
version = "0.17.0-rc.
|
|
4
|
+
version = "0.17.0-rc.1"
|
|
5
5
|
description = "Python interface for the QCS Rust SDK"
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
license = { text = "Apache-2.0" }
|
|
@@ -26,7 +26,7 @@ dependencies = ["quil==0.6.6"]
|
|
|
26
26
|
# We can remove this table once this issue is resolved: https://github.com/python-poetry/poetry/issues/3332
|
|
27
27
|
[tool.poetry]
|
|
28
28
|
name = "qcs-sdk-python"
|
|
29
|
-
version = "0.17.0-rc.
|
|
29
|
+
version = "0.17.0-rc.1"
|
|
30
30
|
description = "Python interface for the QCS Rust SDK"
|
|
31
31
|
readme = "README.md"
|
|
32
32
|
authors = [
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
use std::f64::consts::PI;
|
|
2
|
-
|
|
3
|
-
use qcs::{client::Qcs, compiler::rpcq, qpu::api::ExecutionOptions, Executable};
|
|
4
|
-
|
|
5
|
-
const PROGRAM: &str = r#"
|
|
6
|
-
DECLARE ro BIT[2]
|
|
7
|
-
DECLARE theta REAL
|
|
8
|
-
RX(theta) 0
|
|
9
|
-
CNOT 0 1
|
|
10
|
-
MEASURE 0 ro[0]
|
|
11
|
-
MEASURE 1 ro[1]
|
|
12
|
-
"#;
|
|
13
|
-
|
|
14
|
-
async fn quilc_client() -> rpcq::Client {
|
|
15
|
-
let qcs = Qcs::load().await;
|
|
16
|
-
let endpoint = qcs.get_config().quilc_url();
|
|
17
|
-
rpcq::Client::new(endpoint).unwrap()
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
#[tokio::main]
|
|
21
|
-
async fn main() {
|
|
22
|
-
let mut exe = Executable::from_quil(PROGRAM).with_quilc_client(Some(quilc_client().await));
|
|
23
|
-
|
|
24
|
-
let result = exe
|
|
25
|
-
.with_parameter("theta", 0, PI)
|
|
26
|
-
.execute_on_qpu("Aspen-M-3", None, &ExecutionOptions::default())
|
|
27
|
-
.await
|
|
28
|
-
.expect("Program should execute successfully");
|
|
29
|
-
|
|
30
|
-
dbg!(&result);
|
|
31
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/delayed_job_retrieval.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/examples/parametric_compilation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/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
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/src/qpu/rewrite_arithmetic.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/bell_state_response_data.hex
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/lib/tests/compiler-isa-Aspen-8.json
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/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
|
|
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.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/compiler/__init__.py
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/compiler/__init__.pyi
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/compiler/quilc.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/__init__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qpu/translation.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/qcs_sdk/qvm/__init__.pyi
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
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/grpc/models/controller.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
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/src/qpu/rewrite_arithmetic.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_fixtures/aspen-m-3.json
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_fixtures/device-2q.json
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_qcs_config/secrets.toml
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/_qcs_config/settings.toml
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/compiler/test_quilc.py
RENAMED
|
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.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/qpu/test_translation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/test_diagnostics.py
RENAMED
|
File without changes
|
{qcs_sdk_python-0.17.0rc0 → qcs_sdk_python-0.17.0rc1}/crates/python/tests/test_executable.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
|
|
File without changes
|