qcs-sdk-python 0.29.0rc0__tar.gz → 0.30.0__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.29.0rc0 → qcs_sdk_python-0.30.0}/Cargo.lock +7 -28
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/PKG-INFO +2 -3
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/CHANGELOG.md +18 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/Cargo.toml +1 -3
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/python/stubtest-allowlist +1 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/python.rs +13 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/quilc.rs +2 -1
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/executable.rs +3 -72
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/executable.rs +50 -102
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/mod.rs +6 -11
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/api/mod.rs +32 -13
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/api/python.rs +29 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/execution.rs +2 -48
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/experimental/python.rs +4 -4
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/compiler/test_quilc.py +1 -1
- qcs_sdk_python-0.30.0/crates/lib/tests_py/qpu/experimental/test_random.py +10 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/qpu/test_api.py +15 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/uv.lock +2 -37
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/pyproject.toml +2 -3
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/__init__.pyi +8 -12
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/compiler/quilc/__init__.pyi +2 -4
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qpu/api/__init__.pyi +7 -1
- qcs_sdk_python-0.29.0rc0/crates/lib/tests_py/qpu/experimental/test_random.py +0 -50
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/Cargo.toml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/README-py.md +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/THIRDPARTY.yaml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/.flake8 +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/Makefile.toml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/README-py.md +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/README.md +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/THIRDPARTY.yaml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/build.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/examples/delayed_job_retrieval.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/examples/execute.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/examples/libquil.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/examples/local.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/examples/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/examples/quil_t.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/scripts/check-py-api.sh +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/scripts/lint-bindings.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/bin/diagnostics.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/bin/stub_gen.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/client.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/isa/edge.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/isa/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/isa/operator.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/isa/qubit.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/libquil.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/compiler/rpcq.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/diagnostics/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/diagnostics/python.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/execution_data.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/lib.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/client.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/errors.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/execution_data.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/nonzero.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/python/register_data.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/experimental/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/experimental/random.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/isa/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/isa/python.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/python.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/result_data.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/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.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_allocates_for_multiple_expressions.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions-2.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_phases.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_set_scale_units.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/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.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_substitutes_gate_parameters.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/translation/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qpu/translation/python.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qvm/execution.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qvm/http.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qvm/libquil.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qvm/mod.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qvm/python.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/qvm/snapshots/qcs__qvm__test__apply_valid_parameters_to_program.snap +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/src/register_data.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/aspen_9_isa.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/basic_qvm.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/bell_state_response_data.hex +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/compiler-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/mocked_qpu.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/parametric_compilation.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/prng_test_cases.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/qcs-isa-Aspen-8.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/qvm_api.rs +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/qvm_isa.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests/settings.toml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/_fixtures/aspen-m-3.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/_fixtures/device-2q.json +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/_qcs_config/secrets.toml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/_qcs_config/settings.toml +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/compiler/__snapshots__/test_quilc.ambr +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/conftest.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/execution_data/test_execution_data.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/qpu/test_isa.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/qpu/test_qpu.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/qpu/test_translation.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/qvm/test_qvm.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/test_client.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/test_diagnostics.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/test_executable.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/test_logging.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/crates/lib/tests_py/test_tracing_subscriber.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/client/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/compiler/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/diagnostics/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qpu/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qpu/experimental/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qpu/experimental/random/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qpu/isa/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qpu/translation/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qvm/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_qcs_sdk/qvm/api/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/common/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/common/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/file/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/file/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/subscriber/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/_tracing_subscriber/subscriber/__init__.pyi +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/client/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/compiler/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/compiler/quilc/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/diagnostics/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qpu/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qpu/api/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qpu/experimental/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qpu/experimental/random/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qpu/isa/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qpu/translation/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qvm/__init__.py +0 -0
- {qcs_sdk_python-0.29.0rc0 → qcs_sdk_python-0.30.0}/python/qcs_sdk/qvm/api/__init__.py +0 -0
|
@@ -126,13 +126,13 @@ dependencies = [
|
|
|
126
126
|
|
|
127
127
|
[[package]]
|
|
128
128
|
name = "async-trait"
|
|
129
|
-
version = "0.1.
|
|
129
|
+
version = "0.1.92"
|
|
130
130
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
131
|
-
checksum = "
|
|
131
|
+
checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
|
|
132
132
|
dependencies = [
|
|
133
133
|
"proc-macro2",
|
|
134
134
|
"quote",
|
|
135
|
-
"syn
|
|
135
|
+
"syn 3.0.4",
|
|
136
136
|
]
|
|
137
137
|
|
|
138
138
|
[[package]]
|
|
@@ -3139,7 +3139,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
3139
3139
|
checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
|
|
3140
3140
|
dependencies = [
|
|
3141
3141
|
"chrono",
|
|
3142
|
-
"indexmap 2.13.0",
|
|
3143
3142
|
"inventory",
|
|
3144
3143
|
"libc",
|
|
3145
3144
|
"num-complex",
|
|
@@ -3302,7 +3301,7 @@ dependencies = [
|
|
|
3302
3301
|
"pyo3",
|
|
3303
3302
|
"pyo3-async-runtimes",
|
|
3304
3303
|
"qcs-dependencies-client",
|
|
3305
|
-
"rigetti-pyo3
|
|
3304
|
+
"rigetti-pyo3",
|
|
3306
3305
|
"serde",
|
|
3307
3306
|
"serde_json",
|
|
3308
3307
|
"thiserror 2.0.20",
|
|
@@ -3324,7 +3323,7 @@ dependencies = [
|
|
|
3324
3323
|
|
|
3325
3324
|
[[package]]
|
|
3326
3325
|
name = "qcs"
|
|
3327
|
-
version = "0.
|
|
3326
|
+
version = "0.30.0"
|
|
3328
3327
|
dependencies = [
|
|
3329
3328
|
"assert2",
|
|
3330
3329
|
"async-trait",
|
|
@@ -3364,7 +3363,7 @@ dependencies = [
|
|
|
3364
3363
|
"qcs-dependencies-client",
|
|
3365
3364
|
"quil-rs",
|
|
3366
3365
|
"regex",
|
|
3367
|
-
"rigetti-pyo3
|
|
3366
|
+
"rigetti-pyo3",
|
|
3368
3367
|
"rmp-serde",
|
|
3369
3368
|
"rstest",
|
|
3370
3369
|
"serde",
|
|
@@ -3407,7 +3406,7 @@ dependencies = [
|
|
|
3407
3406
|
"pyo3-build-config",
|
|
3408
3407
|
"pyo3-stub-gen",
|
|
3409
3408
|
"qcs-dependencies-client",
|
|
3410
|
-
"rigetti-pyo3
|
|
3409
|
+
"rigetti-pyo3",
|
|
3411
3410
|
"serde",
|
|
3412
3411
|
"serde_json",
|
|
3413
3412
|
"shellexpand",
|
|
@@ -3507,7 +3506,6 @@ version = "0.37.2"
|
|
|
3507
3506
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3508
3507
|
checksum = "ab2279547bc521362a1ed413e1ad379de23d0efc4ae28f427a4184c8c390ee25"
|
|
3509
3508
|
dependencies = [
|
|
3510
|
-
"anyhow",
|
|
3511
3509
|
"approx",
|
|
3512
3510
|
"derive-where",
|
|
3513
3511
|
"derive_more",
|
|
@@ -3519,16 +3517,11 @@ dependencies = [
|
|
|
3519
3517
|
"nom",
|
|
3520
3518
|
"nom_locate",
|
|
3521
3519
|
"num-complex",
|
|
3522
|
-
"numpy",
|
|
3523
3520
|
"once_cell",
|
|
3524
3521
|
"optipy 0.1.4",
|
|
3525
3522
|
"pastey",
|
|
3526
3523
|
"petgraph 0.6.5",
|
|
3527
|
-
"pyo3",
|
|
3528
|
-
"pyo3-build-config",
|
|
3529
|
-
"pyo3-stub-gen",
|
|
3530
3524
|
"regex",
|
|
3531
|
-
"rigetti-pyo3 0.7.1",
|
|
3532
3525
|
"serde",
|
|
3533
3526
|
"statrs",
|
|
3534
3527
|
"strum",
|
|
@@ -3929,20 +3922,6 @@ dependencies = [
|
|
|
3929
3922
|
"tower-service",
|
|
3930
3923
|
]
|
|
3931
3924
|
|
|
3932
|
-
[[package]]
|
|
3933
|
-
name = "rigetti-pyo3"
|
|
3934
|
-
version = "0.7.1"
|
|
3935
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3936
|
-
checksum = "213e90a6c913d2826aa2b14c0a267c0bd784e586f108319066fdd42834abf325"
|
|
3937
|
-
dependencies = [
|
|
3938
|
-
"indexmap 2.13.0",
|
|
3939
|
-
"itertools 0.14.0",
|
|
3940
|
-
"optipy 0.1.4",
|
|
3941
|
-
"pastey",
|
|
3942
|
-
"pyo3",
|
|
3943
|
-
"pyo3-stub-gen",
|
|
3944
|
-
]
|
|
3945
|
-
|
|
3946
3925
|
[[package]]
|
|
3947
3926
|
name = "rigetti-pyo3"
|
|
3948
3927
|
version = "0.8.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qcs-sdk-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.30.0
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -8,8 +8,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.12
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.13
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Dist:
|
|
12
|
-
Requires-Dist: qcs-api-client-common>=0.19.0,<0.20.0
|
|
11
|
+
Requires-Dist: qcs-api-client-common>=0.19.0,<0.27.0
|
|
13
12
|
Summary: Python interface for the QCS Rust SDK
|
|
14
13
|
Author-email: Rigetti QPU Software <qpu-software@rigetti.com>
|
|
15
14
|
License: Apache-2.0
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## 0.30.0 (2026-10-08)
|
|
2
|
+
|
|
3
|
+
### Breaking Changes
|
|
4
|
+
|
|
5
|
+
- remove quil as a dependency of qcs-sdk-python (#601)
|
|
6
|
+
|
|
7
|
+
## 0.29.0 (2026-09-25)
|
|
8
|
+
|
|
9
|
+
### Breaking Changes
|
|
10
|
+
|
|
11
|
+
- ConnectionStrategy fields for more control over gateway use; use endpoint-ID for Gateway-bound jobs, when possible; remove now-superfluous endpoint_id methods and parameters (#597)
|
|
12
|
+
|
|
13
|
+
## 0.29.0-rc.1 (2026-09-24)
|
|
14
|
+
|
|
15
|
+
### Breaking Changes
|
|
16
|
+
|
|
17
|
+
- put endpoint-ID in the connection-strategy itself; explicitly add the ability to connect to simulated endpoints via gateway; use endpoint-ID for Gateway-bound jobs, when possible
|
|
18
|
+
|
|
1
19
|
## 0.29.0-rc.0 (2026-09-23)
|
|
2
20
|
|
|
3
21
|
### Breaking Changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "qcs"
|
|
3
3
|
description = "High level interface for running Quil on a QPU"
|
|
4
|
-
version = "0.
|
|
4
|
+
version = "0.30.0"
|
|
5
5
|
edition = "2018"
|
|
6
6
|
license = "Apache-2.0"
|
|
7
7
|
repository = "https://github.com/rigetti/qcs-sdk-rust"
|
|
@@ -36,13 +36,11 @@ python = [
|
|
|
36
36
|
"dep:rigetti-pyo3",
|
|
37
37
|
"experimental",
|
|
38
38
|
"tracing-opentelemetry",
|
|
39
|
-
"quil-rs/python",
|
|
40
39
|
"qcs-api-client-common/python",
|
|
41
40
|
]
|
|
42
41
|
stubs = [
|
|
43
42
|
"python",
|
|
44
43
|
"dep:pyo3-stub-gen",
|
|
45
|
-
"quil-rs/stubs",
|
|
46
44
|
"qcs-api-client-common/stubs",
|
|
47
45
|
"pyo3-tracing-subscriber-build",
|
|
48
46
|
"rigetti-pyo3/stubs",
|
|
@@ -13,3 +13,4 @@ qcs_sdk\.(_qcs_sdk\.)?compiler\.quilc\.CompilerOpts\.__new__
|
|
|
13
13
|
qcs_sdk\.(_qcs_sdk\.)?Service\.(QCS|QPU|QUILC|QVM)
|
|
14
14
|
qcs_sdk\.(_qcs_sdk\.)?qpu\.isa\.Family\.(ANKAA|ASPEN|FULL|NONE)
|
|
15
15
|
qcs_sdk\.(_qcs_sdk\.)?qpu\.translation\.TranslationBackend\.(V1|V2)
|
|
16
|
+
qcs_sdk\.(_qcs_sdk\.)?qpu\.api\.EndpointLiveness\.(LIVE_ONLY|LIVE_OR_SIMULATED|SIMULATED_ONLY)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
use qcs_api_client_openapi::models::InstructionSetArchitecture;
|
|
2
|
+
use quil_rs::quil::Quil;
|
|
2
3
|
use rigetti_pyo3::{create_init_submodule, impl_repr, py_function_sync_async};
|
|
3
4
|
use std::convert::TryFrom;
|
|
4
5
|
|
|
@@ -78,6 +79,18 @@ impl CompilerOpts {
|
|
|
78
79
|
}
|
|
79
80
|
}
|
|
80
81
|
|
|
82
|
+
#[cfg_attr(feature = "stubs", gen_stub_pymethods)]
|
|
83
|
+
#[pymethods]
|
|
84
|
+
impl CompilationResult {
|
|
85
|
+
/// The compiled program, as a Quil string.
|
|
86
|
+
#[getter]
|
|
87
|
+
fn program(&self) -> PyResult<String> {
|
|
88
|
+
self.program
|
|
89
|
+
.to_quil()
|
|
90
|
+
.map_err(|err| errors::QuilcError::new_err(err.to_string()))
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
81
94
|
#[cfg_attr(feature = "stubs", gen_stub_pymethods)]
|
|
82
95
|
#[pymethods]
|
|
83
96
|
impl TargetDevice {
|
|
@@ -60,12 +60,12 @@ pub trait Client {
|
|
|
60
60
|
|
|
61
61
|
/// The result of compiling a Quil program to native quil with `quilc`
|
|
62
62
|
#[derive(Clone, Debug, PartialEq)]
|
|
63
|
+
#[cfg_attr(not(feature = "python"), optipy::strip_pyo3)]
|
|
63
64
|
#[cfg_attr(feature = "stubs", gen_stub_pyclass)]
|
|
64
65
|
#[cfg_attr(
|
|
65
66
|
feature = "python",
|
|
66
67
|
pyo3::pyclass(
|
|
67
68
|
module = "qcs_sdk._qcs_sdk.compiler.quilc",
|
|
68
|
-
get_all,
|
|
69
69
|
frozen,
|
|
70
70
|
from_py_object
|
|
71
71
|
)
|
|
@@ -74,6 +74,7 @@ pub struct CompilationResult {
|
|
|
74
74
|
/// The compiled program
|
|
75
75
|
pub program: Program,
|
|
76
76
|
/// Metadata about the compiled program
|
|
77
|
+
#[pyo3(get)]
|
|
77
78
|
pub native_quil_metadata: Option<NativeQuilMetadata>,
|
|
78
79
|
}
|
|
79
80
|
|
|
@@ -420,47 +420,6 @@ impl<'execution> Executable<'_, 'execution> {
|
|
|
420
420
|
.map_err(Error::from)
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
-
/// Compile the program and execute it on a QPU, waiting for results.
|
|
424
|
-
///
|
|
425
|
-
/// # Arguments
|
|
426
|
-
/// 1. `quantum_processor_id`: The name of the QPU to run on. This parameter affects the
|
|
427
|
-
/// lifetime of the [`Executable`]. The [`Executable`] will only live as long as the last
|
|
428
|
-
/// parameter passed into this function.
|
|
429
|
-
///
|
|
430
|
-
/// # Warning
|
|
431
|
-
///
|
|
432
|
-
/// This function uses [`tokio::task::spawn_blocking`] internally. See the docs for that function
|
|
433
|
-
/// to avoid blocking shutdown of the runtime.
|
|
434
|
-
///
|
|
435
|
-
/// # Returns
|
|
436
|
-
///
|
|
437
|
-
/// An [`ExecutionResult`].
|
|
438
|
-
///
|
|
439
|
-
/// # Errors
|
|
440
|
-
/// All errors are human readable by way of [`mod@thiserror`]. Some common errors are:
|
|
441
|
-
///
|
|
442
|
-
/// 1. You are not authenticated for QCS
|
|
443
|
-
/// 1. Your credentials don't have an active reservation for the QPU you requested
|
|
444
|
-
/// 1. [quilc] was not running.
|
|
445
|
-
/// 1. The `quil` that this [`Executable`] was constructed with was invalid.
|
|
446
|
-
/// 1. Missing parameters that should be filled with [`Executable::with_parameter`]
|
|
447
|
-
///
|
|
448
|
-
/// [quilc]: https://github.com/quil-lang/quilc
|
|
449
|
-
pub async fn execute_on_qpu_with_endpoint<S>(
|
|
450
|
-
&mut self,
|
|
451
|
-
quantum_processor_id: S,
|
|
452
|
-
endpoint_id: S,
|
|
453
|
-
translation_options: Option<TranslationOptions>,
|
|
454
|
-
) -> ExecutionResult
|
|
455
|
-
where
|
|
456
|
-
S: Into<Cow<'execution, str>>,
|
|
457
|
-
{
|
|
458
|
-
let job_handle = self
|
|
459
|
-
.submit_to_qpu_with_endpoint(quantum_processor_id, endpoint_id, translation_options)
|
|
460
|
-
.await?;
|
|
461
|
-
self.retrieve_results(job_handle).await
|
|
462
|
-
}
|
|
463
|
-
|
|
464
423
|
/// Compile the program and execute it on a QCS endpoint, waiting for results.
|
|
465
424
|
///
|
|
466
425
|
/// # Arguments
|
|
@@ -560,31 +519,6 @@ impl<'execution> Executable<'_, 'execution> {
|
|
|
560
519
|
Ok(job_handle)
|
|
561
520
|
}
|
|
562
521
|
|
|
563
|
-
/// Compile and submit the program to a QCS endpoint, but do not wait for execution to complete.
|
|
564
|
-
///
|
|
565
|
-
/// Call [`Executable::retrieve_results`] to wait for execution to complete and retrieve the
|
|
566
|
-
/// results.
|
|
567
|
-
///
|
|
568
|
-
/// # Errors
|
|
569
|
-
///
|
|
570
|
-
/// See [`Executable::execute_on_qpu`].
|
|
571
|
-
pub async fn submit_to_qpu_with_endpoint<S>(
|
|
572
|
-
&mut self,
|
|
573
|
-
quantum_processor_id: S,
|
|
574
|
-
endpoint_id: S,
|
|
575
|
-
translation_options: Option<TranslationOptions>,
|
|
576
|
-
) -> Result<JobHandle<'execution>, Error>
|
|
577
|
-
where
|
|
578
|
-
S: Into<Cow<'execution, str>>,
|
|
579
|
-
{
|
|
580
|
-
let job_handle = self
|
|
581
|
-
.qpu_for_id(quantum_processor_id)
|
|
582
|
-
.await?
|
|
583
|
-
.submit_to_endpoint_id(&self.params, endpoint_id.into(), translation_options)
|
|
584
|
-
.await?;
|
|
585
|
-
Ok(job_handle)
|
|
586
|
-
}
|
|
587
|
-
|
|
588
522
|
/// Cancel a job that has yet to begin executing.
|
|
589
523
|
///
|
|
590
524
|
/// This action is *not* atomic, and will attempt to cancel a job even if it cannot be cancelled. A
|
|
@@ -754,7 +688,6 @@ impl From<qvm::Error> for Error {
|
|
|
754
688
|
pub struct JobHandle<'executable> {
|
|
755
689
|
job_id: JobId,
|
|
756
690
|
quantum_processor_id: Cow<'executable, str>,
|
|
757
|
-
endpoint_id: Option<Cow<'executable, str>>,
|
|
758
691
|
readout_map: HashMap<String, String>,
|
|
759
692
|
execution_options: ExecutionOptions,
|
|
760
693
|
}
|
|
@@ -764,7 +697,6 @@ impl<'a> JobHandle<'a> {
|
|
|
764
697
|
pub(crate) fn new<S>(
|
|
765
698
|
job_id: JobId,
|
|
766
699
|
quantum_processor_id: S,
|
|
767
|
-
endpoint_id: Option<S>,
|
|
768
700
|
readout_map: HashMap<String, String>,
|
|
769
701
|
execution_options: ExecutionOptions,
|
|
770
702
|
) -> Self
|
|
@@ -774,7 +706,6 @@ impl<'a> JobHandle<'a> {
|
|
|
774
706
|
Self {
|
|
775
707
|
job_id,
|
|
776
708
|
quantum_processor_id: quantum_processor_id.into(),
|
|
777
|
-
endpoint_id: endpoint_id.map(Into::into),
|
|
778
709
|
readout_map,
|
|
779
710
|
execution_options,
|
|
780
711
|
}
|
|
@@ -792,11 +723,11 @@ impl<'a> JobHandle<'a> {
|
|
|
792
723
|
&self.quantum_processor_id
|
|
793
724
|
}
|
|
794
725
|
|
|
795
|
-
/// The ID of the endpoint to which the job was submitted, if
|
|
796
|
-
///
|
|
726
|
+
/// The ID of the endpoint to which the job was submitted, if the job's
|
|
727
|
+
/// [`ConnectionStrategy`](crate::qpu::api::ConnectionStrategy) specified one.
|
|
797
728
|
#[must_use]
|
|
798
729
|
pub fn endpoint_id(&self) -> Option<&str> {
|
|
799
|
-
self.
|
|
730
|
+
self.execution_options.connection_strategy().endpoint_id()
|
|
800
731
|
}
|
|
801
732
|
|
|
802
733
|
/// The readout map from source readout memory locations to the
|
|
@@ -234,160 +234,108 @@ impl PyExecutable {
|
|
|
234
234
|
|
|
235
235
|
/// Compile the program and execute it on a QPU, waiting for results.
|
|
236
236
|
///
|
|
237
|
-
/// :param `
|
|
238
|
-
///
|
|
237
|
+
/// :param `execution_options`: To target a specific endpoint, use a ``ConnectionStrategy``
|
|
238
|
+
/// that carries an endpoint ID, e.g. ``ConnectionStrategy.EndpointId(...)``.
|
|
239
239
|
///
|
|
240
240
|
/// :raises `ExecutionError`: If the job fails to execute.
|
|
241
|
-
#[pyo3(signature = (quantum_processor_id,
|
|
241
|
+
#[pyo3(signature = (quantum_processor_id, translation_options = None, execution_options = None))]
|
|
242
242
|
pub fn execute_on_qpu(
|
|
243
243
|
&self,
|
|
244
244
|
py: Python<'_>,
|
|
245
245
|
quantum_processor_id: String,
|
|
246
|
-
endpoint_id: Option<String>,
|
|
247
246
|
translation_options: Option<TranslationOptions>,
|
|
248
247
|
execution_options: Option<ExecutionOptions>,
|
|
249
248
|
) -> PyResult<ExecutionData> {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
),
|
|
261
|
-
None => py_sync!(
|
|
262
|
-
py,
|
|
263
|
-
py_executable_data!(
|
|
264
|
-
self,
|
|
265
|
-
execute_on_qpu,
|
|
266
|
-
quantum_processor_id,
|
|
267
|
-
translation_options,
|
|
268
|
-
&execution_options.unwrap_or_default(),
|
|
269
|
-
)
|
|
270
|
-
),
|
|
271
|
-
}
|
|
249
|
+
py_sync!(
|
|
250
|
+
py,
|
|
251
|
+
py_executable_data!(
|
|
252
|
+
self,
|
|
253
|
+
execute_on_qpu,
|
|
254
|
+
quantum_processor_id,
|
|
255
|
+
translation_options,
|
|
256
|
+
&execution_options.unwrap_or_default(),
|
|
257
|
+
)
|
|
258
|
+
)
|
|
272
259
|
}
|
|
273
260
|
/// Compile the program and execute it on a QPU, waiting for results
|
|
274
261
|
/// (async analog of `Executable.execute_on_qpu`).
|
|
275
262
|
///
|
|
276
|
-
/// :param `
|
|
277
|
-
///
|
|
263
|
+
/// :param `execution_options`: To target a specific endpoint, use a ``ConnectionStrategy``
|
|
264
|
+
/// that carries an endpoint ID, e.g. ``ConnectionStrategy.EndpointId(...)``.
|
|
278
265
|
///
|
|
279
266
|
/// :raises `ExecutionError`: If the job fails to execute.
|
|
280
|
-
#[pyo3(signature = (quantum_processor_id,
|
|
267
|
+
#[pyo3(signature = (quantum_processor_id, translation_options = None, execution_options = None))]
|
|
281
268
|
pub fn execute_on_qpu_async<'py>(
|
|
282
269
|
&self,
|
|
283
270
|
py: Python<'py>,
|
|
284
271
|
quantum_processor_id: String,
|
|
285
|
-
endpoint_id: Option<String>,
|
|
286
272
|
translation_options: Option<TranslationOptions>,
|
|
287
273
|
execution_options: Option<ExecutionOptions>,
|
|
288
274
|
) -> PyResult<Awaitable<'py, ExecutionData>> {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
translation_options,
|
|
298
|
-
),
|
|
299
|
-
),
|
|
300
|
-
None => pyo3_async_runtimes::tokio::future_into_py(
|
|
301
|
-
py,
|
|
302
|
-
py_executable_data!(
|
|
303
|
-
self,
|
|
304
|
-
execute_on_qpu,
|
|
305
|
-
quantum_processor_id,
|
|
306
|
-
translation_options,
|
|
307
|
-
&execution_options.unwrap_or_default(),
|
|
308
|
-
),
|
|
275
|
+
pyo3_async_runtimes::tokio::future_into_py(
|
|
276
|
+
py,
|
|
277
|
+
py_executable_data!(
|
|
278
|
+
self,
|
|
279
|
+
execute_on_qpu,
|
|
280
|
+
quantum_processor_id,
|
|
281
|
+
translation_options,
|
|
282
|
+
&execution_options.unwrap_or_default(),
|
|
309
283
|
),
|
|
310
|
-
|
|
284
|
+
)
|
|
311
285
|
.map(Into::into)
|
|
312
286
|
}
|
|
313
287
|
|
|
314
288
|
/// Compile the program and execute it on a QPU, without waiting for results.
|
|
315
289
|
///
|
|
316
|
-
/// :param `
|
|
317
|
-
///
|
|
290
|
+
/// :param `execution_options`: To target a specific endpoint, use a ``ConnectionStrategy``
|
|
291
|
+
/// that carries an endpoint ID, e.g. ``ConnectionStrategy.EndpointId(...)``.
|
|
318
292
|
///
|
|
319
293
|
/// :raises `ExecutionError`: If the job fails to execute.
|
|
320
|
-
#[pyo3(signature = (quantum_processor_id,
|
|
294
|
+
#[pyo3(signature = (quantum_processor_id, translation_options = None, execution_options = None))]
|
|
321
295
|
pub fn submit_to_qpu(
|
|
322
296
|
&self,
|
|
323
297
|
py: Python<'_>,
|
|
324
298
|
quantum_processor_id: String,
|
|
325
|
-
endpoint_id: Option<String>,
|
|
326
299
|
translation_options: Option<TranslationOptions>,
|
|
327
300
|
execution_options: Option<ExecutionOptions>,
|
|
328
301
|
) -> PyResult<PyJobHandle> {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
),
|
|
340
|
-
None => py_sync!(
|
|
341
|
-
py,
|
|
342
|
-
py_job_handle!(
|
|
343
|
-
self,
|
|
344
|
-
submit_to_qpu,
|
|
345
|
-
quantum_processor_id,
|
|
346
|
-
translation_options,
|
|
347
|
-
&execution_options.unwrap_or_default(),
|
|
348
|
-
)
|
|
349
|
-
),
|
|
350
|
-
}
|
|
302
|
+
py_sync!(
|
|
303
|
+
py,
|
|
304
|
+
py_job_handle!(
|
|
305
|
+
self,
|
|
306
|
+
submit_to_qpu,
|
|
307
|
+
quantum_processor_id,
|
|
308
|
+
translation_options,
|
|
309
|
+
&execution_options.unwrap_or_default(),
|
|
310
|
+
)
|
|
311
|
+
)
|
|
351
312
|
}
|
|
352
313
|
|
|
353
314
|
/// Compile the program and execute it on a QPU, without waiting for results
|
|
354
315
|
/// (async analog of `Executable.submit_to_qpu`).
|
|
355
316
|
///
|
|
356
|
-
/// :param `
|
|
357
|
-
///
|
|
317
|
+
/// :param `execution_options`: To target a specific endpoint, use a ``ConnectionStrategy``
|
|
318
|
+
/// that carries an endpoint ID, e.g. ``ConnectionStrategy.EndpointId(...)``.
|
|
358
319
|
///
|
|
359
320
|
/// :raises `ExecutionError`: If the job fails to execute.
|
|
360
|
-
#[pyo3(signature = (quantum_processor_id,
|
|
321
|
+
#[pyo3(signature = (quantum_processor_id, translation_options = None, execution_options = None))]
|
|
361
322
|
pub fn submit_to_qpu_async<'py>(
|
|
362
323
|
&self,
|
|
363
324
|
py: Python<'py>,
|
|
364
325
|
quantum_processor_id: String,
|
|
365
|
-
endpoint_id: Option<String>,
|
|
366
326
|
translation_options: Option<TranslationOptions>,
|
|
367
327
|
execution_options: Option<ExecutionOptions>,
|
|
368
328
|
) -> PyResult<Awaitable<'py, PyJobHandle>> {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
translation_options,
|
|
378
|
-
),
|
|
379
|
-
),
|
|
380
|
-
None => pyo3_async_runtimes::tokio::future_into_py(
|
|
381
|
-
py,
|
|
382
|
-
py_job_handle!(
|
|
383
|
-
self,
|
|
384
|
-
submit_to_qpu,
|
|
385
|
-
quantum_processor_id,
|
|
386
|
-
translation_options,
|
|
387
|
-
&execution_options.unwrap_or_default(),
|
|
388
|
-
),
|
|
329
|
+
pyo3_async_runtimes::tokio::future_into_py(
|
|
330
|
+
py,
|
|
331
|
+
py_job_handle!(
|
|
332
|
+
self,
|
|
333
|
+
submit_to_qpu,
|
|
334
|
+
quantum_processor_id,
|
|
335
|
+
translation_options,
|
|
336
|
+
&execution_options.unwrap_or_default(),
|
|
389
337
|
),
|
|
390
|
-
|
|
338
|
+
)
|
|
391
339
|
.map(Into::into)
|
|
392
340
|
}
|
|
393
341
|
|
|
@@ -110,7 +110,7 @@ fn init_module(m: &Bound<'_, PyModule>) -> PyResult<()> {
|
|
|
110
110
|
mod stubs {
|
|
111
111
|
use pyo3_stub_gen::{
|
|
112
112
|
define_stub_info_gatherer, derive::gen_type_alias_from_python, exclude_from_all,
|
|
113
|
-
export_verbatim,
|
|
113
|
+
export_verbatim, reexport_module_members, Result, StubInfo,
|
|
114
114
|
};
|
|
115
115
|
use std::path::Path;
|
|
116
116
|
|
|
@@ -166,9 +166,7 @@ mod stubs {
|
|
|
166
166
|
reexport_module_members!("qcs_sdk.qvm.api" from "qcs_sdk._qcs_sdk.qvm.api");
|
|
167
167
|
|
|
168
168
|
reexport_module_members!("qcs_sdk._qcs_sdk.client" from "qcs_api_client_common._qcs_api_client_common"; "configuration");
|
|
169
|
-
reexport_module_members!("qcs_sdk._qcs_sdk.compiler.quilc" from "quil._quil"; "program");
|
|
170
169
|
exclude_from_all!("qcs_sdk._qcs_sdk.client", "configuration");
|
|
171
|
-
exclude_from_all!("qcs_sdk._qcs_sdk.compiler.quilc", "program");
|
|
172
170
|
|
|
173
171
|
reexport_module_members!("qcs_sdk" from "qcs_sdk._qcs_sdk.client"; "QCSClient");
|
|
174
172
|
|
|
@@ -178,8 +176,6 @@ mod stubs {
|
|
|
178
176
|
export_verbatim!("qcs_sdk._qcs_sdk", "_gather_diagnostics");
|
|
179
177
|
export_verbatim!("qcs_sdk._qcs_sdk", "__version__");
|
|
180
178
|
|
|
181
|
-
module_doc!("quil._quil.validation", "");
|
|
182
|
-
|
|
183
179
|
define_stub_info_gatherer!(internal_stub_info);
|
|
184
180
|
|
|
185
181
|
/// Gather stub information to generate stub files.
|
|
@@ -188,12 +184,11 @@ mod stubs {
|
|
|
188
184
|
let mut stubs = StubInfo::from_pyproject_toml(manifest_dir.join("pyproject.toml"))?;
|
|
189
185
|
|
|
190
186
|
// `pyo3_stub_gen` gathers declarations from every linked crate, so dependencies that
|
|
191
|
-
// define their own Python packages (`
|
|
192
|
-
//
|
|
193
|
-
//
|
|
194
|
-
//
|
|
195
|
-
//
|
|
196
|
-
// module to still be present at generation time.
|
|
187
|
+
// define their own Python packages (`qcs-api-client-common`) contribute their modules
|
|
188
|
+
// here too. Generation rejects any non-empty module outside this package's module path,
|
|
189
|
+
// and writing files for them would shadow the real, installed packages, so drop them.
|
|
190
|
+
// The stubs refer to foreign types by their private paths, since resolving the public
|
|
191
|
+
// alias needs the foreign module to still be present at generation time.
|
|
197
192
|
stubs
|
|
198
193
|
.modules
|
|
199
194
|
.retain(|name, _| name == "qcs_sdk" || name.starts_with("qcs_sdk."));
|