qcs-sdk-python 0.26.1rc2__tar.gz → 0.26.2rc0__tar.gz

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