qcs-sdk-python 0.16.1rc0__tar.gz → 0.16.2__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.16.1rc0 → qcs_sdk_python-0.16.2}/Cargo.lock +10 -10
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/Cargo.toml +4 -4
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/PKG-INFO +2 -2
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/CHANGELOG.md +44 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/Cargo.toml +1 -1
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/rpcq.rs +3 -3
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/executable.rs +2 -2
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/lib.rs +0 -1
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/api.rs +64 -2
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/execution.rs +2 -2
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/CHANGELOG.md +32 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/Cargo.toml +1 -1
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/api.pyi +38 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qpu/api.rs +87 -2
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/pyproject.toml +3 -3
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qpu/api.pyi +38 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/README.md +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/Makefile.toml +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/README.md +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/build.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/delayed_job_retrieval.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/execute.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/libquil.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/local.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/quil_t.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/bin/diagnostics.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/client.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/isa/edge.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/isa/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/isa/operator.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/isa/qubit.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/libquil.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/compiler/quilc.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/diagnostics.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/execution_data.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/result_data.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/rewrite_arithmetic.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_allocates_for_multiple_expressions.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions-2.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_phases.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_set_scale_units.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_substitutes_gate_parameters.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qpu/translation.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qvm/execution.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qvm/http.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qvm/libquil.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qvm/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/qvm/snapshots/qcs__qvm__test__apply_valid_parameters_to_program.snap +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/src/register_data.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/aspen_9_isa.json +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/basic_qvm.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/bell_state_response_data.hex +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/compiler-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/mocked_qpu.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/qcs-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/qvm_api.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/qvm_isa.json +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/secrets.toml +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/settings.toml +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/.flake8 +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/.stubtest-allowlist +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/Makefile.toml +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/README.md +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/build.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/poetry.lock +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/client.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/client.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/compiler/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/compiler/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/compiler/quilc.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/diagnostics.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/py.typed +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/isa.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/rewrite_arithmetic.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/translation.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qvm/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qvm/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qvm/api.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/client.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/compiler/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/compiler/quilc.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/executable.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/execution_data.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/from_py.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/grpc/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/grpc/models/controller.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/grpc/models/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/lib.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/py_sync.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qpu/isa.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qpu/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qpu/result_data.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qpu/rewrite_arithmetic.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qpu/translation.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qvm/api.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/qvm/mod.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/src/register_data.rs +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_fixtures/aspen-m-3.json +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_fixtures/device-2q.json +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_qcs_config/secrets.toml +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_qcs_config/settings.toml +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/compiler/__snapshots__/test_quilc.ambr +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/compiler/test_quilc.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/conftest.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/execution_data/test_execution_data.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qpu/test_api.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qpu/test_isa.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qpu/test_qpu.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qpu/test_rewrite_arithmetic.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qpu/test_translation.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qvm/test_qvm.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/test_client.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/test_diagnostics.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/test_executable.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/test_logging.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/client.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/client.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/compiler/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/compiler/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/compiler/quilc.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/diagnostics.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/py.typed +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qpu/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qpu/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qpu/isa.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qpu/rewrite_arithmetic.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qpu/translation.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qvm/__init__.py +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qvm/__init__.pyi +0 -0
- {qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/qcs_sdk/qvm/api.pyi +0 -0
|
@@ -2054,7 +2054,7 @@ dependencies = [
|
|
|
2054
2054
|
|
|
2055
2055
|
[[package]]
|
|
2056
2056
|
name = "qcs"
|
|
2057
|
-
version = "0.20.
|
|
2057
|
+
version = "0.20.3"
|
|
2058
2058
|
dependencies = [
|
|
2059
2059
|
"assert2",
|
|
2060
2060
|
"async-trait",
|
|
@@ -2114,9 +2114,9 @@ dependencies = [
|
|
|
2114
2114
|
|
|
2115
2115
|
[[package]]
|
|
2116
2116
|
name = "qcs-api-client-common"
|
|
2117
|
-
version = "0.7.
|
|
2117
|
+
version = "0.7.9"
|
|
2118
2118
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2119
|
-
checksum = "
|
|
2119
|
+
checksum = "cc3356caa74bb697c4271c950a3040e8dbb9448a9bd0124411b9b43155b8e192"
|
|
2120
2120
|
dependencies = [
|
|
2121
2121
|
"async-trait",
|
|
2122
2122
|
"futures",
|
|
@@ -2135,9 +2135,9 @@ dependencies = [
|
|
|
2135
2135
|
|
|
2136
2136
|
[[package]]
|
|
2137
2137
|
name = "qcs-api-client-grpc"
|
|
2138
|
-
version = "0.7.
|
|
2138
|
+
version = "0.7.9"
|
|
2139
2139
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2140
|
-
checksum = "
|
|
2140
|
+
checksum = "37bd1842ca3485e8c0abf36be4cbcee1ea12e97da15ac731ce9dae20f7f58f41"
|
|
2141
2141
|
dependencies = [
|
|
2142
2142
|
"http",
|
|
2143
2143
|
"http-body",
|
|
@@ -2164,9 +2164,9 @@ dependencies = [
|
|
|
2164
2164
|
|
|
2165
2165
|
[[package]]
|
|
2166
2166
|
name = "qcs-api-client-openapi"
|
|
2167
|
-
version = "0.8.
|
|
2167
|
+
version = "0.8.9"
|
|
2168
2168
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2169
|
-
checksum = "
|
|
2169
|
+
checksum = "c605c4bdf887f487dbe7c0055f303728a992a6d508eedc55d7efa41b36adba07"
|
|
2170
2170
|
dependencies = [
|
|
2171
2171
|
"anyhow",
|
|
2172
2172
|
"qcs-api-client-common",
|
|
@@ -2183,7 +2183,7 @@ dependencies = [
|
|
|
2183
2183
|
|
|
2184
2184
|
[[package]]
|
|
2185
2185
|
name = "qcs-sdk-python"
|
|
2186
|
-
version = "0.16.
|
|
2186
|
+
version = "0.16.2"
|
|
2187
2187
|
dependencies = [
|
|
2188
2188
|
"async-trait",
|
|
2189
2189
|
"numpy",
|
|
@@ -2213,8 +2213,8 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
|
|
2213
2213
|
|
|
2214
2214
|
[[package]]
|
|
2215
2215
|
name = "quil-rs"
|
|
2216
|
-
version = "0.22.
|
|
2217
|
-
source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.6.
|
|
2216
|
+
version = "0.22.4"
|
|
2217
|
+
source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.6.4#f7c0ac9affd37f797d4b6434be8cc53143984f8c"
|
|
2218
2218
|
dependencies = [
|
|
2219
2219
|
"approx",
|
|
2220
2220
|
"indexmap 1.9.3",
|
|
@@ -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.9"
|
|
8
|
+
qcs-api-client-grpc = "0.7.9"
|
|
9
|
+
qcs-api-client-openapi = "0.8.9"
|
|
10
10
|
serde_json = "1.0.86"
|
|
11
11
|
thiserror = "1.0.37"
|
|
12
12
|
tokio = "1.34.0"
|
|
@@ -15,7 +15,7 @@ tokio = "1.34.0"
|
|
|
15
15
|
# be a `quil-py` tag and should match the version used in `crates/python/pyproject.toml`
|
|
16
16
|
# The version must also be specified in order to publish to crates.io. Cargo enforces
|
|
17
17
|
# that the specified version is the same as the version in the git repository.
|
|
18
|
-
quil-rs = { version = "0.22.
|
|
18
|
+
quil-rs = { version = "0.22.4", git = "https://github.com/rigetti/quil-rs", tag = "quil-py/v0.6.4" }
|
|
19
19
|
|
|
20
20
|
# ndarray is used by the `qcs` crate, but it is also used in the `python` crate via a
|
|
21
21
|
# re-export through the numpy crate. They should be updated as a pair to keep both
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qcs-sdk-python
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.2
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.8
|
|
@@ -8,7 +8,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.10
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.11
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Dist: quil ==0.6.
|
|
11
|
+
Requires-Dist: quil ==0.6.4
|
|
12
12
|
Summary: Python interface for the QCS Rust SDK
|
|
13
13
|
Keywords: pyquil,SDK,Rigetti,Quil,Quantum
|
|
14
14
|
Author-email: Rigetti Computing <softapps@rigetti.com>, Mark Skilbeck <mark.skilbeck@rigetti.com>, Marquess Valdez <mvaldez@rigetti.com>, Randall Fulton <rfulton@rigetti.com>
|
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
## 0.20.3
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- Update quil-rs/quil-py to 0.23.4/0.6.4 (#423)
|
|
6
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
7
|
+
|
|
8
|
+
## 0.20.3-rc.2
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
- Update quil-rs/quil-py to 0.23.4/0.6.4 (#423)
|
|
13
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
14
|
+
|
|
15
|
+
## 0.20.3-rc.1
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
20
|
+
|
|
21
|
+
## 0.20.3-rc.0
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
26
|
+
|
|
27
|
+
## 0.20.2
|
|
28
|
+
|
|
29
|
+
### Fixes
|
|
30
|
+
|
|
31
|
+
- make rpcq timeout functions public, since initializing Client is public (#398)
|
|
32
|
+
|
|
33
|
+
## 0.20.2-rc.0
|
|
34
|
+
|
|
35
|
+
### Fixes
|
|
36
|
+
|
|
37
|
+
- make rpcq timeout functions public, since initializing Client is public (#398)
|
|
38
|
+
|
|
39
|
+
## 0.20.1
|
|
40
|
+
|
|
41
|
+
### Features
|
|
42
|
+
|
|
43
|
+
- Update quil-rs/py to 0.23.3/0.6.3 (#413)
|
|
44
|
+
|
|
1
45
|
## 0.20.1-rc.0
|
|
2
46
|
|
|
3
47
|
### Features
|
|
@@ -41,7 +41,7 @@ impl Client {
|
|
|
41
41
|
/// Set the timeout used for both sending and receiving messages
|
|
42
42
|
///
|
|
43
43
|
/// Value is number of milliseconds. A value of `-1` means no timeout.
|
|
44
|
-
pub
|
|
44
|
+
pub fn set_timeout(&mut self, timeout: i32) {
|
|
45
45
|
self.set_send_timeout(timeout);
|
|
46
46
|
self.set_receive_timeout(timeout);
|
|
47
47
|
}
|
|
@@ -49,14 +49,14 @@ impl Client {
|
|
|
49
49
|
/// Set the timeout used when sending messages
|
|
50
50
|
///
|
|
51
51
|
/// Value is number of milliseconds. A value of `-1` means no timeout.
|
|
52
|
-
pub
|
|
52
|
+
pub fn set_send_timeout(&mut self, timeout: i32) {
|
|
53
53
|
self.send_timeout = Some(timeout);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/// Set the timeout used when receiving messages
|
|
57
57
|
///
|
|
58
58
|
/// Value is number of milliseconds. A value of `-1` means no timeout.
|
|
59
|
-
pub
|
|
59
|
+
pub fn set_receive_timeout(&mut self, timeout: i32) {
|
|
60
60
|
self.receive_timeout = Some(timeout);
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -701,7 +701,7 @@ impl From<ExecutionError> for Error {
|
|
|
701
701
|
ExecutionError::Unexpected(inner) => Self::Unexpected(format!("{inner:?}")),
|
|
702
702
|
ExecutionError::Quilc { .. } => Self::Connection(Service::Quilc),
|
|
703
703
|
ExecutionError::QcsClient(v) => Self::Unexpected(format!("{v:?}")),
|
|
704
|
-
ExecutionError::
|
|
704
|
+
ExecutionError::Isa(v) => Self::Unexpected(format!("{v:?}")),
|
|
705
705
|
ExecutionError::ReadoutParse(v) => Self::Unexpected(format!("{v:?}")),
|
|
706
706
|
ExecutionError::Quil(e) => Self::Quil(e),
|
|
707
707
|
ExecutionError::ToQuil(e) => Self::ToQuil(e),
|
|
@@ -709,7 +709,7 @@ impl From<ExecutionError> for Error {
|
|
|
709
709
|
ExecutionError::RewriteArithmetic(e) => Self::RewriteArithmetic(e),
|
|
710
710
|
ExecutionError::RpcqClient(e) => Self::Unexpected(format!("{e:?}")),
|
|
711
711
|
ExecutionError::Substitution(message) => Self::Substitution(message),
|
|
712
|
-
ExecutionError::
|
|
712
|
+
ExecutionError::QpuApi(e) => Self::QpuApiError(e),
|
|
713
713
|
}
|
|
714
714
|
}
|
|
715
715
|
}
|
|
@@ -17,7 +17,7 @@ use qcs_api_client_grpc::{
|
|
|
17
17
|
services::controller::{
|
|
18
18
|
controller_client::ControllerClient, execute_controller_job_request,
|
|
19
19
|
get_controller_job_results_request, ExecuteControllerJobRequest,
|
|
20
|
-
GetControllerJobResultsRequest,
|
|
20
|
+
ExecutionOptions as InnerApiExecutionOptions, GetControllerJobResultsRequest,
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
23
|
pub use qcs_api_client_openapi::apis::Error as OpenApiError;
|
|
@@ -104,6 +104,7 @@ pub async fn submit(
|
|
|
104
104
|
execution_configurations: vec![params_into_job_execution_configuration(patch_values)],
|
|
105
105
|
job: Some(execute_controller_job_request::Job::Encrypted(program)),
|
|
106
106
|
target: execution_options.get_job_target(quantum_processor_id),
|
|
107
|
+
options: execution_options.api_options().cloned(),
|
|
107
108
|
};
|
|
108
109
|
|
|
109
110
|
let mut controller_client = execution_options
|
|
@@ -194,7 +195,7 @@ pub type QpuConnectionOptionsBuilder = ExecutionOptionsBuilder;
|
|
|
194
195
|
///
|
|
195
196
|
/// Use [`Default`] to get a reasonable set of defaults, or start with [`ExecutionOptionsBuilder`]
|
|
196
197
|
/// to build a custom set of options.
|
|
197
|
-
#[derive(Builder, Clone, Debug, Default, PartialEq
|
|
198
|
+
#[derive(Builder, Clone, Debug, Default, PartialEq)]
|
|
198
199
|
pub struct ExecutionOptions {
|
|
199
200
|
#[doc = "The [`ConnectionStrategy`] to use to establish a connection to the QPU."]
|
|
200
201
|
#[builder(default)]
|
|
@@ -202,6 +203,61 @@ pub struct ExecutionOptions {
|
|
|
202
203
|
#[doc = "The timeout to use for the request, defaults to 30 seconds. If set to `None`, then there is no timeout."]
|
|
203
204
|
#[builder(default = "Some(Duration::from_secs(30))")]
|
|
204
205
|
timeout: Option<Duration>,
|
|
206
|
+
#[doc = "Options avaialable when executing a job on a QPU, particular to the execution service's API."]
|
|
207
|
+
#[builder(default = "None")]
|
|
208
|
+
api_options: Option<InnerApiExecutionOptions>,
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
impl Eq for ExecutionOptions {}
|
|
212
|
+
|
|
213
|
+
/// Options avaialable when executing a job on a QPU, particular to the execution service's API.
|
|
214
|
+
/// This is a conventent alias for [`InnerApiExecutionOptions`] which provides a builder.
|
|
215
|
+
///
|
|
216
|
+
/// Use [`Default`] to get a reasonable set of defaults, or start with [`ApiExecutionOptionsBuilder`]
|
|
217
|
+
/// to build a custom set of options.
|
|
218
|
+
#[derive(Builder, Clone, Debug, Default, PartialEq)]
|
|
219
|
+
#[allow(clippy::module_name_repetitions)]
|
|
220
|
+
pub struct ApiExecutionOptions {
|
|
221
|
+
/// the inner proto representation
|
|
222
|
+
inner: InnerApiExecutionOptions,
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
impl Eq for ApiExecutionOptions {}
|
|
226
|
+
|
|
227
|
+
impl ApiExecutionOptions {
|
|
228
|
+
/// Get an [`ExecutionOptionsBuilder`] that can be used to build a custom [`ExecutionOptions`].
|
|
229
|
+
#[must_use]
|
|
230
|
+
pub fn builder() -> ApiExecutionOptionsBuilder {
|
|
231
|
+
ApiExecutionOptionsBuilder::default()
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/// Get the configured `bypass_settings_protection` value.
|
|
235
|
+
#[must_use]
|
|
236
|
+
pub fn bypass_settings_protection(&self) -> bool {
|
|
237
|
+
self.inner.bypass_settings_protection
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
impl From<ApiExecutionOptions> for InnerApiExecutionOptions {
|
|
242
|
+
fn from(options: ApiExecutionOptions) -> Self {
|
|
243
|
+
options.inner
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
impl From<InnerApiExecutionOptions> for ApiExecutionOptions {
|
|
248
|
+
fn from(inner: InnerApiExecutionOptions) -> Self {
|
|
249
|
+
Self { inner }
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
impl ApiExecutionOptionsBuilder {
|
|
254
|
+
/// Set the `bypass_settings_protection` value.
|
|
255
|
+
pub fn bypass_settings_protection(&mut self, bypass_settings_protection: bool) -> &mut Self {
|
|
256
|
+
self.inner
|
|
257
|
+
.get_or_insert(InnerApiExecutionOptions::default())
|
|
258
|
+
.bypass_settings_protection = bypass_settings_protection;
|
|
259
|
+
self
|
|
260
|
+
}
|
|
205
261
|
}
|
|
206
262
|
|
|
207
263
|
impl ExecutionOptions {
|
|
@@ -222,6 +278,12 @@ impl ExecutionOptions {
|
|
|
222
278
|
pub fn timeout(&self) -> Option<Duration> {
|
|
223
279
|
self.timeout
|
|
224
280
|
}
|
|
281
|
+
|
|
282
|
+
/// Get the [`ApiExecutionOptions`].
|
|
283
|
+
#[must_use]
|
|
284
|
+
pub fn api_options(&self) -> Option<&InnerApiExecutionOptions> {
|
|
285
|
+
self.api_options.as_ref()
|
|
286
|
+
}
|
|
225
287
|
}
|
|
226
288
|
|
|
227
289
|
/// The connection strategy to use when submitting and retrieving jobs from a QPU.
|
|
@@ -52,7 +52,7 @@ pub(crate) enum Error {
|
|
|
52
52
|
#[error("Problem using QCS API: {0}")]
|
|
53
53
|
QcsClient(#[from] GrpcClientError),
|
|
54
54
|
#[error("Problem fetching ISA: {0}")]
|
|
55
|
-
|
|
55
|
+
Isa(#[from] GetIsaError),
|
|
56
56
|
#[error("Problem parsing memory readout: {0}")]
|
|
57
57
|
ReadoutParse(#[from] MemoryReferenceParseError),
|
|
58
58
|
#[error("Problem when compiling program: {details}")]
|
|
@@ -64,7 +64,7 @@ pub(crate) enum Error {
|
|
|
64
64
|
#[error("Program when getting substitutions for program: {0}")]
|
|
65
65
|
Substitution(String),
|
|
66
66
|
#[error("Problem making a request to the QPU: {0}")]
|
|
67
|
-
|
|
67
|
+
QpuApi(#[from] super::api::QpuApiError),
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
impl From<quilc::Error> for Error {
|
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
## 0.16.2
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- Update quil-rs/quil-py to 0.23.4/0.6.4 (#423)
|
|
6
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
7
|
+
|
|
8
|
+
## 0.16.2-rc.2
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
- Update quil-rs/quil-py to 0.23.4/0.6.4 (#423)
|
|
13
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
14
|
+
|
|
15
|
+
## 0.16.2-rc.1
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
20
|
+
|
|
21
|
+
## 0.16.2-rc.0
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
- provide ExecutionOptions configurability as ApiExecutionOptions (#415)
|
|
26
|
+
|
|
27
|
+
## 0.16.1
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
- Update quil-rs/py to 0.23.3/0.6.3 (#413)
|
|
32
|
+
|
|
1
33
|
## 0.16.1-rc.0
|
|
2
34
|
|
|
3
35
|
### Features
|
|
@@ -193,6 +193,9 @@ class ExecutionOptions:
|
|
|
193
193
|
@property
|
|
194
194
|
def timeout_seconds(self) -> Optional[float]:
|
|
195
195
|
"""The time in seconds to wait before timing out a request, if any."""
|
|
196
|
+
@property
|
|
197
|
+
def api_options(self) -> bool:
|
|
198
|
+
"""Execution options particular to the API call at the point of execution."""
|
|
196
199
|
|
|
197
200
|
@final
|
|
198
201
|
class ExecutionOptionsBuilder:
|
|
@@ -216,9 +219,44 @@ class ExecutionOptionsBuilder:
|
|
|
216
219
|
@timeout_seconds.setter
|
|
217
220
|
def timeout_seconds(self, timeout_seconds: Optional[float]):
|
|
218
221
|
"""Set the number of seconds to wait before timing out. If set to `None` there is no timeout."""
|
|
222
|
+
@property
|
|
223
|
+
def api_options(self) -> bool:
|
|
224
|
+
raise AttributeError("api_options is not readable")
|
|
225
|
+
@api_options.setter
|
|
226
|
+
def api_options(self, api_options: APIExecutionOptions):
|
|
227
|
+
"""Execution options particular to the API call at the point of execution."""
|
|
219
228
|
def build(self) -> ExecutionOptions:
|
|
220
229
|
"""Build the ``ExecutionOptions`` using the options set in this builder."""
|
|
221
230
|
|
|
231
|
+
@final
|
|
232
|
+
class APIExecutionOptions:
|
|
233
|
+
@staticmethod
|
|
234
|
+
def default() -> APIExecutionOptions:
|
|
235
|
+
"""Return APIExecutionOptions with a reasonable set of defaults."""
|
|
236
|
+
...
|
|
237
|
+
@staticmethod
|
|
238
|
+
def builder() -> APIExecutionOptionsBuilder:
|
|
239
|
+
"""Get an ``APIExecutionOptionsBuilder`` that can be used to build a custom set of ``APIExecutionOptions``"""
|
|
240
|
+
@property
|
|
241
|
+
def bypass_settings_protection(self) -> bool:
|
|
242
|
+
"""Whether or not to force managed settings to change, if applicable. Subject to additional authorization requirements."""
|
|
243
|
+
|
|
244
|
+
@final
|
|
245
|
+
class APIExecutionOptionsBuilder:
|
|
246
|
+
def __new__(cls) -> APIExecutionOptionsBuilder: ...
|
|
247
|
+
@staticmethod
|
|
248
|
+
def default() -> APIExecutionOptionsBuilder:
|
|
249
|
+
"""Return a builder with the default values for ``APIExecutionOptions``"""
|
|
250
|
+
...
|
|
251
|
+
@property
|
|
252
|
+
def bypass_settings_protection(self) -> bool:
|
|
253
|
+
raise AttributeError("bypass_settings_protection is not readable")
|
|
254
|
+
@bypass_settings_protection.setter
|
|
255
|
+
def bypass_settings_protection(self, bypass_settings_protection: bool):
|
|
256
|
+
"""Whether or not to force managed settings to change, if applicable. Subject to additional authorization requirements."""
|
|
257
|
+
def build(self) -> APIExecutionOptions:
|
|
258
|
+
"""Build the ``APIExecutionOptions`` using the options set in this builder."""
|
|
259
|
+
|
|
222
260
|
@final
|
|
223
261
|
class ConnectionStrategy:
|
|
224
262
|
"""The connection strategy to use when submitting and retrieiving jobs from a quantum processor."""
|
|
@@ -11,7 +11,10 @@ use pyo3::{
|
|
|
11
11
|
types::{PyComplex, PyInt},
|
|
12
12
|
IntoPy, Py, PyObject, PyResult, Python, ToPyObject,
|
|
13
13
|
};
|
|
14
|
-
use qcs::qpu::api::{
|
|
14
|
+
use qcs::qpu::api::{
|
|
15
|
+
ApiExecutionOptions, ApiExecutionOptionsBuilder, ConnectionStrategy, ExecutionOptions,
|
|
16
|
+
ExecutionOptionsBuilder,
|
|
17
|
+
};
|
|
15
18
|
use qcs_api_client_grpc::models::controller::{
|
|
16
19
|
data_value, readout_values, ControllerJobExecutionResult,
|
|
17
20
|
};
|
|
@@ -33,7 +36,9 @@ create_init_submodule! {
|
|
|
33
36
|
ExecutionResults,
|
|
34
37
|
PyConnectionStrategy,
|
|
35
38
|
PyExecutionOptions,
|
|
36
|
-
PyExecutionOptionsBuilder
|
|
39
|
+
PyExecutionOptionsBuilder,
|
|
40
|
+
PyApiExecutionOptions,
|
|
41
|
+
PyApiExecutionOptionsBuilder
|
|
37
42
|
],
|
|
38
43
|
errors: [
|
|
39
44
|
SubmissionError,
|
|
@@ -300,6 +305,13 @@ py_wrap_type! {
|
|
|
300
305
|
impl_repr!(PyExecutionOptions);
|
|
301
306
|
impl_as_mut_for_wrapper!(PyExecutionOptions);
|
|
302
307
|
|
|
308
|
+
py_wrap_type! {
|
|
309
|
+
#[derive(Debug, Default)]
|
|
310
|
+
PyApiExecutionOptions(ApiExecutionOptions) as "APIExecutionOptions"
|
|
311
|
+
}
|
|
312
|
+
impl_repr!(PyApiExecutionOptions);
|
|
313
|
+
impl_as_mut_for_wrapper!(PyApiExecutionOptions);
|
|
314
|
+
|
|
303
315
|
#[pymethods]
|
|
304
316
|
impl PyExecutionOptions {
|
|
305
317
|
#[staticmethod]
|
|
@@ -324,6 +336,13 @@ impl PyExecutionOptions {
|
|
|
324
336
|
.map(|timeout| timeout.as_secs_f64())
|
|
325
337
|
}
|
|
326
338
|
|
|
339
|
+
#[getter]
|
|
340
|
+
fn api_options(&self) -> Option<PyApiExecutionOptions> {
|
|
341
|
+
self.as_inner()
|
|
342
|
+
.api_options()
|
|
343
|
+
.map(|x| PyApiExecutionOptions(x.clone().into()))
|
|
344
|
+
}
|
|
345
|
+
|
|
327
346
|
fn __richcmp__(&self, py: Python<'_>, other: &Self, op: CompareOp) -> PyObject {
|
|
328
347
|
match op {
|
|
329
348
|
CompareOp::Eq => (self.as_inner() == other.as_inner()).into_py(py),
|
|
@@ -332,6 +351,24 @@ impl PyExecutionOptions {
|
|
|
332
351
|
}
|
|
333
352
|
}
|
|
334
353
|
|
|
354
|
+
#[pymethods]
|
|
355
|
+
impl PyApiExecutionOptions {
|
|
356
|
+
#[staticmethod]
|
|
357
|
+
fn default() -> Self {
|
|
358
|
+
Self::from(ApiExecutionOptions::default())
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
#[staticmethod]
|
|
362
|
+
fn builder() -> PyApiExecutionOptionsBuilder {
|
|
363
|
+
PyApiExecutionOptionsBuilder::default()
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
#[getter]
|
|
367
|
+
fn bypass_settings_protection(&self) -> bool {
|
|
368
|
+
self.as_inner().bypass_settings_protection()
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
335
372
|
py_wrap_type! {
|
|
336
373
|
PyExecutionOptionsBuilder(ExecutionOptionsBuilder) as "ExecutionOptionsBuilder"
|
|
337
374
|
}
|
|
@@ -361,6 +398,16 @@ impl PyExecutionOptionsBuilder {
|
|
|
361
398
|
);
|
|
362
399
|
}
|
|
363
400
|
|
|
401
|
+
#[setter]
|
|
402
|
+
fn api_options(&mut self, api_options: Option<PyApiExecutionOptions>) {
|
|
403
|
+
*self = Self::from(
|
|
404
|
+
self.as_inner()
|
|
405
|
+
.clone()
|
|
406
|
+
.api_options(api_options.map(|x| x.into_inner().into()))
|
|
407
|
+
.clone(),
|
|
408
|
+
);
|
|
409
|
+
}
|
|
410
|
+
|
|
364
411
|
#[setter]
|
|
365
412
|
fn timeout_seconds(&mut self, timeout_seconds: Option<f64>) {
|
|
366
413
|
let timeout = timeout_seconds.map(Duration::from_secs_f64);
|
|
@@ -376,6 +423,44 @@ impl PyExecutionOptionsBuilder {
|
|
|
376
423
|
}
|
|
377
424
|
}
|
|
378
425
|
|
|
426
|
+
py_wrap_type! {
|
|
427
|
+
PyApiExecutionOptionsBuilder(ApiExecutionOptionsBuilder) as "APIExecutionOptionsBuilder"
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
#[pymethods]
|
|
431
|
+
impl PyApiExecutionOptionsBuilder {
|
|
432
|
+
#[new]
|
|
433
|
+
fn new() -> Self {
|
|
434
|
+
Self::default()
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
#[staticmethod]
|
|
438
|
+
fn default() -> Self {
|
|
439
|
+
Self::from(ApiExecutionOptionsBuilder::default())
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
#[setter]
|
|
443
|
+
fn bypass_settings_protection(&mut self, bypass_settings_protection: bool) {
|
|
444
|
+
// `derive_builder::Builder` doesn't implement AsMut, meaning we can't use `PyWrapperMut`,
|
|
445
|
+
// which forces us into this awkward clone.
|
|
446
|
+
|
|
447
|
+
*self = Self::from(
|
|
448
|
+
self.as_inner()
|
|
449
|
+
.clone()
|
|
450
|
+
.bypass_settings_protection(bypass_settings_protection)
|
|
451
|
+
.clone(),
|
|
452
|
+
);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
fn build(&self) -> PyResult<PyApiExecutionOptions> {
|
|
456
|
+
Ok(PyApiExecutionOptions::from(
|
|
457
|
+
self.as_inner()
|
|
458
|
+
.build()
|
|
459
|
+
.map_err(|err| PyValueError::new_err(err.to_string()))?,
|
|
460
|
+
))
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
379
464
|
py_wrap_type! {
|
|
380
465
|
#[derive(Default)]
|
|
381
466
|
PyConnectionStrategy(ConnectionStrategy) as "ConnectionStrategy"
|
|
@@ -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.16.
|
|
4
|
+
version = "0.16.2"
|
|
5
5
|
description = "Python interface for the QCS Rust SDK"
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
license = { text = "Apache-2.0" }
|
|
@@ -20,13 +20,13 @@ classifiers = [
|
|
|
20
20
|
"Programming Language :: Python :: 3.11",
|
|
21
21
|
"Operating System :: OS Independent",
|
|
22
22
|
]
|
|
23
|
-
dependencies = ["quil==0.6.
|
|
23
|
+
dependencies = ["quil==0.6.4"]
|
|
24
24
|
|
|
25
25
|
# PEP 621 specifies the [project] table as the source for project metadata. However, Poetry only supports [tool.poetry]
|
|
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.16.
|
|
29
|
+
version = "0.16.2"
|
|
30
30
|
description = "Python interface for the QCS Rust SDK"
|
|
31
31
|
readme = "README.md"
|
|
32
32
|
authors = [
|
|
@@ -193,6 +193,9 @@ class ExecutionOptions:
|
|
|
193
193
|
@property
|
|
194
194
|
def timeout_seconds(self) -> Optional[float]:
|
|
195
195
|
"""The time in seconds to wait before timing out a request, if any."""
|
|
196
|
+
@property
|
|
197
|
+
def api_options(self) -> bool:
|
|
198
|
+
"""Execution options particular to the API call at the point of execution."""
|
|
196
199
|
|
|
197
200
|
@final
|
|
198
201
|
class ExecutionOptionsBuilder:
|
|
@@ -216,9 +219,44 @@ class ExecutionOptionsBuilder:
|
|
|
216
219
|
@timeout_seconds.setter
|
|
217
220
|
def timeout_seconds(self, timeout_seconds: Optional[float]):
|
|
218
221
|
"""Set the number of seconds to wait before timing out. If set to `None` there is no timeout."""
|
|
222
|
+
@property
|
|
223
|
+
def api_options(self) -> bool:
|
|
224
|
+
raise AttributeError("api_options is not readable")
|
|
225
|
+
@api_options.setter
|
|
226
|
+
def api_options(self, api_options: APIExecutionOptions):
|
|
227
|
+
"""Execution options particular to the API call at the point of execution."""
|
|
219
228
|
def build(self) -> ExecutionOptions:
|
|
220
229
|
"""Build the ``ExecutionOptions`` using the options set in this builder."""
|
|
221
230
|
|
|
231
|
+
@final
|
|
232
|
+
class APIExecutionOptions:
|
|
233
|
+
@staticmethod
|
|
234
|
+
def default() -> APIExecutionOptions:
|
|
235
|
+
"""Return APIExecutionOptions with a reasonable set of defaults."""
|
|
236
|
+
...
|
|
237
|
+
@staticmethod
|
|
238
|
+
def builder() -> APIExecutionOptionsBuilder:
|
|
239
|
+
"""Get an ``APIExecutionOptionsBuilder`` that can be used to build a custom set of ``APIExecutionOptions``"""
|
|
240
|
+
@property
|
|
241
|
+
def bypass_settings_protection(self) -> bool:
|
|
242
|
+
"""Whether or not to force managed settings to change, if applicable. Subject to additional authorization requirements."""
|
|
243
|
+
|
|
244
|
+
@final
|
|
245
|
+
class APIExecutionOptionsBuilder:
|
|
246
|
+
def __new__(cls) -> APIExecutionOptionsBuilder: ...
|
|
247
|
+
@staticmethod
|
|
248
|
+
def default() -> APIExecutionOptionsBuilder:
|
|
249
|
+
"""Return a builder with the default values for ``APIExecutionOptions``"""
|
|
250
|
+
...
|
|
251
|
+
@property
|
|
252
|
+
def bypass_settings_protection(self) -> bool:
|
|
253
|
+
raise AttributeError("bypass_settings_protection is not readable")
|
|
254
|
+
@bypass_settings_protection.setter
|
|
255
|
+
def bypass_settings_protection(self, bypass_settings_protection: bool):
|
|
256
|
+
"""Whether or not to force managed settings to change, if applicable. Subject to additional authorization requirements."""
|
|
257
|
+
def build(self) -> APIExecutionOptions:
|
|
258
|
+
"""Build the ``APIExecutionOptions`` using the options set in this builder."""
|
|
259
|
+
|
|
222
260
|
@final
|
|
223
261
|
class ConnectionStrategy:
|
|
224
262
|
"""The connection strategy to use when submitting and retrieiving jobs from a quantum processor."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/examples/delayed_job_retrieval.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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
|
|
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
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/bell_state_response_data.hex
RENAMED
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/lib/tests/compiler-isa-Aspen-8.json
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/compiler/__init__.py
RENAMED
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/compiler/__init__.pyi
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.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/rewrite_arithmetic.pyi
RENAMED
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/qcs_sdk/qpu/translation.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
|
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_fixtures/aspen-m-3.json
RENAMED
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_fixtures/device-2q.json
RENAMED
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_qcs_config/secrets.toml
RENAMED
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/_qcs_config/settings.toml
RENAMED
|
File without changes
|
|
File without changes
|
{qcs_sdk_python-0.16.1rc0 → qcs_sdk_python-0.16.2}/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.16.1rc0 → qcs_sdk_python-0.16.2}/crates/python/tests/qpu/test_translation.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|