qcs-sdk-python 0.29.0rc1__tar.gz → 0.31.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.
Files changed (147) hide show
  1. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/Cargo.lock +60 -69
  2. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/Cargo.toml +4 -4
  3. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/PKG-INFO +2 -3
  4. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/CHANGELOG.md +18 -0
  5. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/Cargo.toml +1 -3
  6. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/python.rs +13 -0
  7. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/quilc.rs +2 -1
  8. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/mod.rs +6 -11
  9. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/api/mod.rs +6 -4
  10. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/api/python.rs +23 -0
  11. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/experimental/python.rs +4 -4
  12. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/compiler/test_quilc.py +1 -1
  13. qcs_sdk_python-0.31.0/crates/lib/tests_py/qpu/experimental/test_random.py +10 -0
  14. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/qpu/test_api.py +15 -0
  15. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/uv.lock +2 -37
  16. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/pyproject.toml +2 -3
  17. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/compiler/quilc/__init__.pyi +2 -4
  18. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qpu/api/__init__.pyi +3 -0
  19. qcs_sdk_python-0.29.0rc1/crates/lib/tests_py/qpu/experimental/test_random.py +0 -50
  20. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/README-py.md +0 -0
  21. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/THIRDPARTY.yaml +0 -0
  22. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/.flake8 +0 -0
  23. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/Makefile.toml +0 -0
  24. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/README-py.md +0 -0
  25. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/README.md +0 -0
  26. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/THIRDPARTY.yaml +0 -0
  27. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/build.rs +0 -0
  28. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/examples/delayed_job_retrieval.rs +0 -0
  29. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/examples/execute.rs +0 -0
  30. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/examples/libquil.rs +0 -0
  31. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/examples/local.rs +0 -0
  32. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/examples/parametric_compilation.rs +0 -0
  33. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/examples/quil_t.rs +0 -0
  34. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/python/stubtest-allowlist +0 -0
  35. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/scripts/check-py-api.sh +0 -0
  36. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/scripts/lint-bindings.py +0 -0
  37. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/bin/diagnostics.rs +0 -0
  38. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/bin/stub_gen.rs +0 -0
  39. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/client.rs +0 -0
  40. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/isa/edge.rs +0 -0
  41. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/isa/mod.rs +0 -0
  42. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/isa/operator.rs +0 -0
  43. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/isa/qubit.rs +0 -0
  44. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/libquil.rs +0 -0
  45. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/mod.rs +0 -0
  46. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/compiler/rpcq.rs +0 -0
  47. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/diagnostics/mod.rs +0 -0
  48. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/diagnostics/python.rs +0 -0
  49. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/executable.rs +0 -0
  50. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/execution_data.rs +0 -0
  51. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/lib.rs +0 -0
  52. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/client.rs +0 -0
  53. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/errors.rs +0 -0
  54. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/executable.rs +0 -0
  55. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/execution_data.rs +0 -0
  56. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/nonzero.rs +0 -0
  57. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/python/register_data.rs +0 -0
  58. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/execution.rs +0 -0
  59. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/experimental/mod.rs +0 -0
  60. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/experimental/random.rs +0 -0
  61. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/isa/mod.rs +0 -0
  62. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/isa/python.rs +0 -0
  63. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/mod.rs +0 -0
  64. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/python.rs +0 -0
  65. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/result_data.rs +0 -0
  66. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/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.29.0rc1 → qcs_sdk_python-0.31.0}/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.29.0rc1 → qcs_sdk_python-0.31.0}/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.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_frequency_expressions.snap +0 -0
  70. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_converts_phases.snap +0 -0
  71. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/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.29.0rc1 → qcs_sdk_python-0.31.0}/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.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/snapshots/qcs__qpu__rewrite_arithmetic__describe_rewrite_arithmetic__it_substitutes_gate_parameters.snap +0 -0
  74. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/translation/mod.rs +0 -0
  75. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qpu/translation/python.rs +0 -0
  76. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qvm/execution.rs +0 -0
  77. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qvm/http.rs +0 -0
  78. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qvm/libquil.rs +0 -0
  79. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qvm/mod.rs +0 -0
  80. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qvm/python.rs +0 -0
  81. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/qvm/snapshots/qcs__qvm__test__apply_valid_parameters_to_program.snap +0 -0
  82. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/src/register_data.rs +0 -0
  83. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/aspen_9_isa.json +0 -0
  84. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/basic_qvm.rs +0 -0
  85. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/bell_state_response_data.hex +0 -0
  86. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/compiler-isa-Aspen-8.json +0 -0
  87. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/mocked_qpu.rs +0 -0
  88. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/parametric_compilation.rs +0 -0
  89. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/prng_test_cases.json +0 -0
  90. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/qcs-isa-Aspen-8.json +0 -0
  91. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/qvm_api.rs +0 -0
  92. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/qvm_isa.json +0 -0
  93. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests/settings.toml +0 -0
  94. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/_fixtures/aspen-m-3.json +0 -0
  95. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/_fixtures/device-2q.json +0 -0
  96. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/_qcs_config/secrets.toml +0 -0
  97. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/_qcs_config/settings.toml +0 -0
  98. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/compiler/__snapshots__/test_quilc.ambr +0 -0
  99. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/conftest.py +0 -0
  100. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/execution_data/test_execution_data.py +0 -0
  101. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/qpu/test_isa.py +0 -0
  102. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/qpu/test_qpu.py +0 -0
  103. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/qpu/test_translation.py +0 -0
  104. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/qvm/test_qvm.py +0 -0
  105. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/test_client.py +0 -0
  106. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/test_diagnostics.py +0 -0
  107. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/test_executable.py +0 -0
  108. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/test_logging.py +0 -0
  109. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/crates/lib/tests_py/test_tracing_subscriber.py +0 -0
  110. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/__init__.py +0 -0
  111. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/__init__.pyi +0 -0
  112. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/client/__init__.pyi +0 -0
  113. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/compiler/__init__.pyi +0 -0
  114. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/diagnostics/__init__.pyi +0 -0
  115. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qpu/__init__.pyi +0 -0
  116. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qpu/experimental/__init__.pyi +0 -0
  117. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qpu/experimental/random/__init__.pyi +0 -0
  118. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qpu/isa/__init__.pyi +0 -0
  119. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qpu/translation/__init__.pyi +0 -0
  120. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qvm/__init__.pyi +0 -0
  121. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_qcs_sdk/qvm/api/__init__.pyi +0 -0
  122. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/__init__.py +0 -0
  123. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/__init__.pyi +0 -0
  124. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/common/__init__.py +0 -0
  125. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/common/__init__.pyi +0 -0
  126. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/__init__.py +0 -0
  127. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/__init__.pyi +0 -0
  128. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/file/__init__.py +0 -0
  129. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/file/__init__.pyi +0 -0
  130. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.py +0 -0
  131. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp/__init__.pyi +0 -0
  132. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.py +0 -0
  133. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/layers/otel_otlp_file/__init__.pyi +0 -0
  134. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/subscriber/__init__.py +0 -0
  135. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/_tracing_subscriber/subscriber/__init__.pyi +0 -0
  136. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/client/__init__.py +0 -0
  137. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/compiler/__init__.py +0 -0
  138. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/compiler/quilc/__init__.py +0 -0
  139. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/diagnostics/__init__.py +0 -0
  140. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qpu/__init__.py +0 -0
  141. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qpu/api/__init__.py +0 -0
  142. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qpu/experimental/__init__.py +0 -0
  143. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qpu/experimental/random/__init__.py +0 -0
  144. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qpu/isa/__init__.py +0 -0
  145. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qpu/translation/__init__.py +0 -0
  146. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.0}/python/qcs_sdk/qvm/__init__.py +0 -0
  147. {qcs_sdk_python-0.29.0rc1 → qcs_sdk_python-0.31.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.89"
129
+ version = "0.1.92"
130
130
  source = "registry+https://github.com/rust-lang/crates.io-index"
131
- checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
131
+ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
132
132
  dependencies = [
133
133
  "proc-macro2",
134
134
  "quote",
135
- "syn 2.0.117",
135
+ "syn 3.0.4",
136
136
  ]
137
137
 
138
138
  [[package]]
@@ -2414,7 +2414,7 @@ version = "5.0.0"
2414
2414
  source = "registry+https://github.com/rust-lang/crates.io-index"
2415
2415
  checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d"
2416
2416
  dependencies = [
2417
- "base64 0.22.1",
2417
+ "base64 0.21.7",
2418
2418
  "chrono",
2419
2419
  "getrandom 0.2.17",
2420
2420
  "http",
@@ -2562,9 +2562,9 @@ dependencies = [
2562
2562
 
2563
2563
  [[package]]
2564
2564
  name = "opentelemetry"
2565
- version = "0.31.0"
2565
+ version = "0.32.0"
2566
2566
  source = "registry+https://github.com/rust-lang/crates.io-index"
2567
- checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0"
2567
+ checksum = "b0142c63252a9e054e68a4c61a5778f7b14f576274d593f8ce883d191a099682"
2568
2568
  dependencies = [
2569
2569
  "futures-core",
2570
2570
  "futures-sink",
@@ -2576,9 +2576,9 @@ dependencies = [
2576
2576
 
2577
2577
  [[package]]
2578
2578
  name = "opentelemetry-http"
2579
- version = "0.31.0"
2579
+ version = "0.32.0"
2580
2580
  source = "registry+https://github.com/rust-lang/crates.io-index"
2581
- checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d"
2581
+ checksum = "5683015d09e2df236ef005b17f6f196f0d5f6313c4fa43a7b6a53b52776e4331"
2582
2582
  dependencies = [
2583
2583
  "async-trait",
2584
2584
  "bytes",
@@ -2588,9 +2588,9 @@ dependencies = [
2588
2588
 
2589
2589
  [[package]]
2590
2590
  name = "opentelemetry-otlp"
2591
- version = "0.31.1"
2591
+ version = "0.32.0"
2592
2592
  source = "registry+https://github.com/rust-lang/crates.io-index"
2593
- checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f"
2593
+ checksum = "9966929966d17620d7c316c643ba62631826e10021409357772d5eea84f62c35"
2594
2594
  dependencies = [
2595
2595
  "http",
2596
2596
  "opentelemetry",
@@ -2600,13 +2600,14 @@ dependencies = [
2600
2600
  "thiserror 2.0.20",
2601
2601
  "tokio",
2602
2602
  "tonic",
2603
+ "tonic-types",
2603
2604
  ]
2604
2605
 
2605
2606
  [[package]]
2606
2607
  name = "opentelemetry-proto"
2607
- version = "0.31.0"
2608
+ version = "0.32.0"
2608
2609
  source = "registry+https://github.com/rust-lang/crates.io-index"
2609
- checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f"
2610
+ checksum = "56d658ba1faf63f7b9c492cfbe6e0ec365440a16132d3270c1065f7b33f1b638"
2610
2611
  dependencies = [
2611
2612
  "base64 0.22.1",
2612
2613
  "const-hex",
@@ -2614,22 +2615,22 @@ dependencies = [
2614
2615
  "opentelemetry_sdk",
2615
2616
  "prost",
2616
2617
  "serde",
2617
- "serde_json",
2618
2618
  "tonic",
2619
2619
  "tonic-prost",
2620
2620
  ]
2621
2621
 
2622
2622
  [[package]]
2623
2623
  name = "opentelemetry_sdk"
2624
- version = "0.31.0"
2624
+ version = "0.32.1"
2625
2625
  source = "registry+https://github.com/rust-lang/crates.io-index"
2626
- checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd"
2626
+ checksum = "9b59f80e1ac4d5ff7a2db8fb6c80badb7f0f3f858211fba08dd9aaec750894f9"
2627
2627
  dependencies = [
2628
2628
  "futures-channel",
2629
2629
  "futures-executor",
2630
2630
  "futures-util",
2631
2631
  "opentelemetry",
2632
2632
  "percent-encoding",
2633
+ "portable-atomic",
2633
2634
  "rand 0.9.2",
2634
2635
  "thiserror 2.0.20",
2635
2636
  "tokio",
@@ -2649,9 +2650,9 @@ dependencies = [
2649
2650
 
2650
2651
  [[package]]
2651
2652
  name = "optipy"
2652
- version = "0.2.1"
2653
+ version = "0.2.2"
2653
2654
  source = "registry+https://github.com/rust-lang/crates.io-index"
2654
- checksum = "861264739d9b482f654ce5bf9a7123dc2bc47b1f3c3820af990c0576ca3ecba7"
2655
+ checksum = "a175ca1709db59997095c070d8a7937b7b1e17d220a7021d33aac0c5f1d33f1c"
2655
2656
  dependencies = [
2656
2657
  "proc-macro2",
2657
2658
  "quote",
@@ -3059,8 +3060,8 @@ version = "0.14.3"
3059
3060
  source = "registry+https://github.com/rust-lang/crates.io-index"
3060
3061
  checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7"
3061
3062
  dependencies = [
3062
- "heck 0.5.0",
3063
- "itertools 0.14.0",
3063
+ "heck 0.4.1",
3064
+ "itertools 0.12.1",
3064
3065
  "log",
3065
3066
  "multimap",
3066
3067
  "petgraph 0.8.3",
@@ -3081,7 +3082,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
3081
3082
  checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b"
3082
3083
  dependencies = [
3083
3084
  "anyhow",
3084
- "itertools 0.14.0",
3085
+ "itertools 0.12.1",
3085
3086
  "proc-macro2",
3086
3087
  "quote",
3087
3088
  "syn 2.0.117",
@@ -3139,7 +3140,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
3139
3140
  checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
3140
3141
  dependencies = [
3141
3142
  "chrono",
3142
- "indexmap 2.13.0",
3143
3143
  "inventory",
3144
3144
  "libc",
3145
3145
  "num-complex",
@@ -3232,9 +3232,9 @@ dependencies = [
3232
3232
 
3233
3233
  [[package]]
3234
3234
  name = "pyo3-opentelemetry"
3235
- version = "0.11.0"
3235
+ version = "0.11.1"
3236
3236
  source = "registry+https://github.com/rust-lang/crates.io-index"
3237
- checksum = "751d9b7fc7751abbee4110735a420cfc4ae172698b5a8aac0f417df3776b10d5"
3237
+ checksum = "6bda7ec23b6dcfe1274829a8ede269cf4d285e95b23a4f009052e7a71c6d0391"
3238
3238
  dependencies = [
3239
3239
  "pyo3",
3240
3240
  "pyo3-opentelemetry-macros",
@@ -3243,9 +3243,9 @@ dependencies = [
3243
3243
 
3244
3244
  [[package]]
3245
3245
  name = "pyo3-opentelemetry-macros"
3246
- version = "0.11.0"
3246
+ version = "0.11.1"
3247
3247
  source = "registry+https://github.com/rust-lang/crates.io-index"
3248
- checksum = "7c303ed73d294dd7b88f0262afdbfab275b6bae37f2556c0120965649c094e7f"
3248
+ checksum = "4d59e36d1ccda42d0e758def2decfdcf4b6fd57a09404e147a285a2a767f9508"
3249
3249
  dependencies = [
3250
3250
  "proc-macro2",
3251
3251
  "quote",
@@ -3294,15 +3294,15 @@ dependencies = [
3294
3294
 
3295
3295
  [[package]]
3296
3296
  name = "pyo3-tracing-subscriber"
3297
- version = "0.9.0"
3297
+ version = "0.9.2"
3298
3298
  source = "registry+https://github.com/rust-lang/crates.io-index"
3299
- checksum = "c8eef7a29520a43da6e6b6a021d3faf81c2b5464b170fb524ec0ebc25137cad7"
3299
+ checksum = "c7447303555540a84252abac76eb497ec8cf456d6070e867684b4c43b966f417"
3300
3300
  dependencies = [
3301
3301
  "futures-core",
3302
3302
  "pyo3",
3303
3303
  "pyo3-async-runtimes",
3304
3304
  "qcs-dependencies-client",
3305
- "rigetti-pyo3 0.8.1",
3305
+ "rigetti-pyo3",
3306
3306
  "serde",
3307
3307
  "serde_json",
3308
3308
  "thiserror 2.0.20",
@@ -3313,9 +3313,9 @@ dependencies = [
3313
3313
 
3314
3314
  [[package]]
3315
3315
  name = "pyo3-tracing-subscriber-build"
3316
- version = "0.9.0"
3316
+ version = "0.9.2"
3317
3317
  source = "registry+https://github.com/rust-lang/crates.io-index"
3318
- checksum = "fa1d2d8629e327274fb0688b4e89d91c3a2dd1f0d5751400826b511a63915102"
3318
+ checksum = "03e723e552f2e40a27a661f50be2b407f94a9ae36215b6ffcdf7305b34e84db4"
3319
3319
  dependencies = [
3320
3320
  "handlebars",
3321
3321
  "serde",
@@ -3324,7 +3324,7 @@ dependencies = [
3324
3324
 
3325
3325
  [[package]]
3326
3326
  name = "qcs"
3327
- version = "0.29.0-rc.1"
3327
+ version = "0.31.0"
3328
3328
  dependencies = [
3329
3329
  "assert2",
3330
3330
  "async-trait",
@@ -3348,7 +3348,7 @@ dependencies = [
3348
3348
  "num",
3349
3349
  "numpy",
3350
3350
  "oauth2-test-server",
3351
- "optipy 0.2.1",
3351
+ "optipy 0.2.2",
3352
3352
  "pastey",
3353
3353
  "pyo3",
3354
3354
  "pyo3-async-runtimes",
@@ -3364,7 +3364,7 @@ dependencies = [
3364
3364
  "qcs-dependencies-client",
3365
3365
  "quil-rs",
3366
3366
  "regex",
3367
- "rigetti-pyo3 0.8.1",
3367
+ "rigetti-pyo3",
3368
3368
  "rmp-serde",
3369
3369
  "rstest",
3370
3370
  "serde",
@@ -3385,9 +3385,9 @@ dependencies = [
3385
3385
 
3386
3386
  [[package]]
3387
3387
  name = "qcs-api-client-common"
3388
- version = "0.26.0"
3388
+ version = "0.27.0"
3389
3389
  source = "registry+https://github.com/rust-lang/crates.io-index"
3390
- checksum = "0492c2342745b7141535af1ae803eb6269d4ba6b2ce47f51a355f54253cf8f0c"
3390
+ checksum = "77f82fdb414443de72df887fd1b624d8e0eb6fab12edae187031debb76179239"
3391
3391
  dependencies = [
3392
3392
  "async-tempfile",
3393
3393
  "async-trait",
@@ -3407,7 +3407,7 @@ dependencies = [
3407
3407
  "pyo3-build-config",
3408
3408
  "pyo3-stub-gen",
3409
3409
  "qcs-dependencies-client",
3410
- "rigetti-pyo3 0.8.1",
3410
+ "rigetti-pyo3",
3411
3411
  "serde",
3412
3412
  "serde_json",
3413
3413
  "shellexpand",
@@ -3425,9 +3425,9 @@ dependencies = [
3425
3425
 
3426
3426
  [[package]]
3427
3427
  name = "qcs-api-client-grpc"
3428
- version = "0.26.0"
3428
+ version = "0.27.0"
3429
3429
  source = "registry+https://github.com/rust-lang/crates.io-index"
3430
- checksum = "13266eb1aa189a2a65377f1489e9a43dd4c61db16c06da9274e976e01df64ae0"
3430
+ checksum = "3cea5b495ea03fe9d746b59897771e5afc6483d8b18dd8974a31c2936d04699d"
3431
3431
  dependencies = [
3432
3432
  "backon",
3433
3433
  "futures-util",
@@ -3450,9 +3450,9 @@ dependencies = [
3450
3450
 
3451
3451
  [[package]]
3452
3452
  name = "qcs-api-client-openapi"
3453
- version = "0.27.0"
3453
+ version = "0.28.0"
3454
3454
  source = "registry+https://github.com/rust-lang/crates.io-index"
3455
- checksum = "4f143435ba46ac18782f3c13b756b9526ceb541953f3caad421ebef22b3ae65a"
3455
+ checksum = "7dd4ccd608acb75b88e3a5a89b18222833cf54c90bdc76ef7383a3d35e498c54"
3456
3456
  dependencies = [
3457
3457
  "anyhow",
3458
3458
  "chrono",
@@ -3472,9 +3472,9 @@ dependencies = [
3472
3472
 
3473
3473
  [[package]]
3474
3474
  name = "qcs-dependencies-client"
3475
- version = "0.5.2"
3475
+ version = "0.6.0"
3476
3476
  source = "registry+https://github.com/rust-lang/crates.io-index"
3477
- checksum = "594d8244e2e6408f80907ae82e49caebb3e5783e5e1512eb24bf87f10c081e2a"
3477
+ checksum = "934c12183373dcd9c28bd6148e301ac42c99169bc03d791dd3f9296f85058f81"
3478
3478
  dependencies = [
3479
3479
  "http",
3480
3480
  "opentelemetry",
@@ -3507,7 +3507,6 @@ version = "0.37.2"
3507
3507
  source = "registry+https://github.com/rust-lang/crates.io-index"
3508
3508
  checksum = "ab2279547bc521362a1ed413e1ad379de23d0efc4ae28f427a4184c8c390ee25"
3509
3509
  dependencies = [
3510
- "anyhow",
3511
3510
  "approx",
3512
3511
  "derive-where",
3513
3512
  "derive_more",
@@ -3519,16 +3518,11 @@ dependencies = [
3519
3518
  "nom",
3520
3519
  "nom_locate",
3521
3520
  "num-complex",
3522
- "numpy",
3523
3521
  "once_cell",
3524
3522
  "optipy 0.1.4",
3525
3523
  "pastey",
3526
3524
  "petgraph 0.6.5",
3527
- "pyo3",
3528
- "pyo3-build-config",
3529
- "pyo3-stub-gen",
3530
3525
  "regex",
3531
- "rigetti-pyo3 0.7.1",
3532
3526
  "serde",
3533
3527
  "statrs",
3534
3528
  "strum",
@@ -3894,9 +3888,9 @@ dependencies = [
3894
3888
 
3895
3889
  [[package]]
3896
3890
  name = "reqwest-tracing"
3897
- version = "0.7.0"
3891
+ version = "0.7.1"
3898
3892
  source = "registry+https://github.com/rust-lang/crates.io-index"
3899
- checksum = "d5c1a1510677d43dce9e9c0c07fc5db8772c0e5a43e4f9cef75a11affa05a578"
3893
+ checksum = "b5e5af0cd6fc3d3c8f703d597af70b6e4e62432c63157b49419fa1ffaf481702"
3900
3894
  dependencies = [
3901
3895
  "anyhow",
3902
3896
  "async-trait",
@@ -3931,27 +3925,13 @@ dependencies = [
3931
3925
 
3932
3926
  [[package]]
3933
3927
  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
- [[package]]
3947
- name = "rigetti-pyo3"
3948
- version = "0.8.1"
3928
+ version = "0.8.3"
3949
3929
  source = "registry+https://github.com/rust-lang/crates.io-index"
3950
- checksum = "54283d7a88051a30fd1d508c22a1c5bca9b74ef9572d1e43ee707c5f8417e3d0"
3930
+ checksum = "9b6cb25f66100ac5f06eb67a38c2080e83508c8aefff7f2af14bdfaaa9c95b1c"
3951
3931
  dependencies = [
3952
3932
  "indexmap 2.13.0",
3953
3933
  "itertools 0.14.0",
3954
- "optipy 0.2.1",
3934
+ "optipy 0.2.2",
3955
3935
  "pastey",
3956
3936
  "pyo3",
3957
3937
  "pyo3-async-runtimes",
@@ -5243,6 +5223,17 @@ dependencies = [
5243
5223
  "tonic-build",
5244
5224
  ]
5245
5225
 
5226
+ [[package]]
5227
+ name = "tonic-types"
5228
+ version = "0.14.6"
5229
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5230
+ checksum = "73ab1b02061f83d519bba3caa167f88f261ef05720ab8ebc954ade70de3348e8"
5231
+ dependencies = [
5232
+ "prost",
5233
+ "prost-types",
5234
+ "tonic",
5235
+ ]
5236
+
5246
5237
  [[package]]
5247
5238
  name = "tower"
5248
5239
  version = "0.5.3"
@@ -5357,9 +5348,9 @@ dependencies = [
5357
5348
 
5358
5349
  [[package]]
5359
5350
  name = "tracing-opentelemetry"
5360
- version = "0.32.1"
5351
+ version = "0.33.0"
5361
5352
  source = "registry+https://github.com/rust-lang/crates.io-index"
5362
- checksum = "1ac28f2d093c6c477eaa76b23525478f38de514fa9aeb1285738d4b97a9552fc"
5353
+ checksum = "adbc64cba7137545b8044cb1fe9814f7aacf3c6b5f9b45be8bb5db538befdb26"
5363
5354
  dependencies = [
5364
5355
  "js-sys",
5365
5356
  "opentelemetry",
@@ -8,7 +8,7 @@ resolver = "2"
8
8
  # crates' versions of ndarray in sync.
9
9
  chrono = "0.4"
10
10
  ndarray = { version = "0.17.2", features = ["serde"] }
11
- qcs-dependencies-client = { version = "0.5" }
11
+ qcs-dependencies-client = { version = "0.6" }
12
12
  serde_json = "1.0.86"
13
13
  thiserror = "2.0"
14
14
  tokio = "1.36.0"
@@ -29,9 +29,9 @@ pyo3-tracing-subscriber-build = "0.9"
29
29
  rigetti-pyo3 = "0.8"
30
30
  optipy = "0.2"
31
31
 
32
- qcs-api-client-common = "0.26.0"
33
- qcs-api-client-grpc = "0.26.0"
34
- qcs-api-client-openapi = "0.27.0"
32
+ qcs-api-client-common = "0.27.0"
33
+ qcs-api-client-grpc = "0.27.0"
34
+ qcs-api-client-openapi = "0.28.0"
35
35
  quil-rs = "0.37.0"
36
36
  assert2 = "0.3.11"
37
37
  async-trait = "0.1.73"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qcs-sdk-python
3
- Version: 0.29.0rc1
3
+ Version: 0.31.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: quil>=0.37.1,<0.38.0
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.31.0 (2026-10-13)
2
+
3
+ ### Breaking Changes
4
+
5
+ - use released qcs-api-client 0.27.0 and 0.28.0 (#602)
6
+
7
+ ## 0.30.0 (2026-10-08)
8
+
9
+ ### Breaking Changes
10
+
11
+ - remove quil as a dependency of qcs-sdk-python (#601)
12
+
13
+ ## 0.29.0 (2026-09-25)
14
+
15
+ ### Breaking Changes
16
+
17
+ - 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)
18
+
1
19
  ## 0.29.0-rc.1 (2026-09-24)
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.29.0-rc.1"
4
+ version = "0.31.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",
@@ -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
 
@@ -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, module_doc, reexport_module_members, Result, StubInfo,
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 (`quil-rs` and `qcs-api-client-common`) contribute
192
- // their modules here too. Generation rejects any non-empty module outside this
193
- // package's module path, and writing files for them would shadow the real, installed
194
- // packages, so drop them. The stubs refer to foreign types by their private paths
195
- // (`quil._quil.program.Program`), since resolving the public alias needs the foreign
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."));
@@ -536,7 +536,7 @@ impl ExecutionOptions {
536
536
 
537
537
  /// Whether a [`ConnectionStrategy::Gateway`] connection should route to live hardware,
538
538
  /// simulated hardware, or either.
539
- #[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
539
+ #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
540
540
  #[cfg_attr(feature = "stubs", gen_stub_pyclass_enum)]
541
541
  #[cfg_attr(
542
542
  feature = "python",
@@ -544,18 +544,20 @@ impl ExecutionOptions {
544
544
  module = "qcs_sdk._qcs_sdk.qpu.api",
545
545
  rename_all = "SCREAMING_SNAKE_CASE",
546
546
  eq,
547
+ hash,
548
+ frozen,
547
549
  from_py_object
548
550
  )
549
551
  )]
550
552
  pub enum EndpointLiveness {
551
553
  /// Only connect to an accessor attached to live hardware.
552
554
  #[default]
553
- LiveOnly,
555
+ LiveOnly = 0,
554
556
  /// Connect to an accessor attached to either live or simulated hardware, with no preference
555
557
  /// between the two.
556
- LiveOrSimulated,
558
+ LiveOrSimulated = 1,
557
559
  /// Only connect to an accessor attached to simulated hardware.
558
- SimulatedOnly,
560
+ SimulatedOnly = 2,
559
561
  }
560
562
 
561
563
  /// The connection strategy to use when submitting and retrieving jobs from a QPU.
@@ -458,6 +458,29 @@ impl ConnectionStrategy {
458
458
  }
459
459
  }
460
460
 
461
+ #[cfg_attr(not(feature = "stubs"), optipy::strip_pyo3(only_stubs))]
462
+ #[cfg_attr(feature = "stubs", gen_stub_pymethods)]
463
+ #[pymethods]
464
+ impl EndpointLiveness {
465
+ // pyo3 enums have no by-value constructor, so pickle by discriminant,
466
+ // constructing via a `#[new]` that maps `isize` back to a variant.
467
+ #[new]
468
+ fn __new__(value: isize) -> PyResult<Self> {
469
+ match value {
470
+ val if val == Self::LiveOnly as isize => Ok(Self::LiveOnly),
471
+ val if val == Self::LiveOrSimulated as isize => Ok(Self::LiveOrSimulated),
472
+ val if val == Self::SimulatedOnly as isize => Ok(Self::SimulatedOnly),
473
+ _ => Err(errors::QpuApiError::new_err(format!(
474
+ "unknown EndpointLiveness discriminant: {value}"
475
+ ))),
476
+ }
477
+ }
478
+
479
+ fn __getnewargs__(&self) -> (isize,) {
480
+ (*self as isize,)
481
+ }
482
+ }
483
+
461
484
  #[cfg(feature = "stubs")]
462
485
  mod stubs {
463
486
  use super::{ApiExecutionOptionsBuilder, ExecutionOptionsBuilder, JobId};
@@ -1,9 +1,9 @@
1
1
  //! Python bindings for the experimental QPU module.
2
2
 
3
- use quil_rs::quil::{Quil, ToQuilError};
3
+ use quil_rs::quil::Quil;
4
4
  use rigetti_pyo3::create_init_submodule;
5
5
 
6
- use crate::qpu::experimental::random::ChooseRandomRealSubRegions;
6
+ use crate::qpu::experimental::random::{ChooseRandomRealSubRegions, Error as RandomError};
7
7
 
8
8
  create_init_submodule! {
9
9
  submodules: [ "random": random::init_submodule ],
@@ -40,7 +40,7 @@ impl ChooseRandomRealSubRegions {
40
40
  /// ```
41
41
  #[staticmethod]
42
42
  #[pyo3(name = "build_signature")]
43
- fn py_build_signature() -> Result<String, ToQuilError> {
44
- ChooseRandomRealSubRegions::build_signature().to_quil()
43
+ fn py_build_signature() -> Result<String, RandomError> {
44
+ Ok(ChooseRandomRealSubRegions::build_signature().to_quil()?)
45
45
  }
46
46
  }
@@ -59,7 +59,7 @@ def test_compile_program(
59
59
  result = compile_program(
60
60
  bell_program, target_device, client=quilc_rpcq_client, options=CompilerOpts(protoquil=True)
61
61
  )
62
- assert result.program.to_quil() == snapshot
62
+ assert result.program == snapshot
63
63
  assert result.native_quil_metadata == snapshot
64
64
 
65
65
 
@@ -0,0 +1,10 @@
1
+ from qcs_sdk.qpu.experimental.random import ChooseRandomRealSubRegions
2
+
3
+
4
+ def test_choose_random_real_subregions():
5
+ """Test the name and signature used to declare `ChooseRandomRealSubRegions` in a Quil program."""
6
+ assert ChooseRandomRealSubRegions.NAME == "choose_random_real_sub_regions"
7
+ assert (
8
+ ChooseRandomRealSubRegions.build_signature()
9
+ == "(destination : mut REAL[], source : REAL[], sub_region_size : INTEGER, seed : mut INTEGER)"
10
+ )