bloqade-circuit 0.7.3__tar.gz → 0.7.4__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.

Potentially problematic release.


This version of bloqade-circuit might be problematic. Click here for more details.

Files changed (406) hide show
  1. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/PKG-INFO +2 -2
  2. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/pyproject.toml +2 -2
  3. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/passes/__init__.py +0 -1
  4. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/passes/squin_to_stim.py +14 -42
  5. bloqade_circuit-0.7.4/test/stim/passes/stim_reference_programs/qubit/non_pure_loop_iterator.stim +7 -0
  6. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/test_squin_qubit_to_stim.py +17 -0
  7. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/uv.lock +84 -59
  8. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.github/dependabot.yml +0 -0
  9. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.github/workflows/ci.yml +0 -0
  10. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.github/workflows/isort.yml +0 -0
  11. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.github/workflows/lint.yml +0 -0
  12. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.github/workflows/release.yml +0 -0
  13. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.gitignore +0 -0
  14. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/.pre-commit-config.yaml +0 -0
  15. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/LICENSE +0 -0
  16. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/README.md +0 -0
  17. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/_typos.toml +0 -0
  18. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/justfile +0 -0
  19. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/__init__.py +0 -0
  20. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/address/__init__.py +0 -0
  21. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/address/analysis.py +0 -0
  22. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/address/impls.py +0 -0
  23. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/address/lattice.py +0 -0
  24. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/fidelity/__init__.py +0 -0
  25. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/fidelity/analysis.py +0 -0
  26. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/measure_id/__init__.py +0 -0
  27. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/measure_id/analysis.py +0 -0
  28. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/measure_id/impls.py +0 -0
  29. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/analysis/measure_id/lattice.py +0 -0
  30. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/__init__.py +0 -0
  31. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/lineprog.py +0 -0
  32. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/noise/__init__.py +0 -0
  33. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/noise/_two_zone_utils.py +0 -0
  34. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/noise/conflict_graph.py +0 -0
  35. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/noise/model.py +0 -0
  36. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/noise/transform.py +0 -0
  37. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/cirq_utils/parallelize.py +0 -0
  38. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/device.py +0 -0
  39. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/__init__.py +0 -0
  40. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/base.py +0 -0
  41. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/device.py +0 -0
  42. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/noise/__init__.py +0 -0
  43. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/noise/native.py +0 -0
  44. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/qasm2/__init__.py +0 -0
  45. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/qasm2/core.py +0 -0
  46. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/qasm2/glob.py +0 -0
  47. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/qasm2/parallel.py +0 -0
  48. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/qasm2/uop.py +0 -0
  49. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/reg.py +0 -0
  50. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/__init__.py +0 -0
  51. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/noise/__init__.py +0 -0
  52. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/noise/native.py +0 -0
  53. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/op.py +0 -0
  54. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/qubit.py +0 -0
  55. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/runtime.py +0 -0
  56. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/squin/wire.py +0 -0
  57. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/target.py +0 -0
  58. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/pyqrack/task.py +0 -0
  59. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/__init__.py +0 -0
  60. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/_qasm_loading.py +0 -0
  61. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/_wrappers.py +0 -0
  62. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/__init__.py +0 -0
  63. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/core/__init__.py +0 -0
  64. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/core/_dialect.py +0 -0
  65. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/core/_emit.py +0 -0
  66. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/core/_typeinfer.py +0 -0
  67. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/core/address.py +0 -0
  68. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/core/stmts.py +0 -0
  69. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/expr/__init__.py +0 -0
  70. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/expr/_dialect.py +0 -0
  71. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/expr/_emit.py +0 -0
  72. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/expr/_from_python.py +0 -0
  73. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/expr/_interp.py +0 -0
  74. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/expr/stmts.py +0 -0
  75. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/glob.py +0 -0
  76. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/indexing.py +0 -0
  77. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/inline.py +0 -0
  78. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/noise/__init__.py +0 -0
  79. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/noise/_dialect.py +0 -0
  80. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/noise/fidelity.py +0 -0
  81. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/noise/model.py +0 -0
  82. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/noise/stmts.py +0 -0
  83. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/parallel.py +0 -0
  84. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/uop/__init__.py +0 -0
  85. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/uop/_dialect.py +0 -0
  86. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/uop/_emit.py +0 -0
  87. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/uop/schedule.py +0 -0
  88. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/dialects/uop/stmts.py +0 -0
  89. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/__init__.py +0 -0
  90. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/base.py +0 -0
  91. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/gate.py +0 -0
  92. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/impls/__init__.py +0 -0
  93. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/impls/noise.py +0 -0
  94. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/main.py +0 -0
  95. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/emit/target.py +0 -0
  96. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/glob.py +0 -0
  97. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/groups.py +0 -0
  98. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/noise.py +0 -0
  99. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parallel.py +0 -0
  100. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/__init__.py +0 -0
  101. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/ast.py +0 -0
  102. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/build.py +0 -0
  103. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/lowering.py +0 -0
  104. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/parser.py +0 -0
  105. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/print.py +0 -0
  106. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/qasm2.lark +0 -0
  107. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/visitor.py +0 -0
  108. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/parse/visitor.pyi +0 -0
  109. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/__init__.py +0 -0
  110. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/fold.py +0 -0
  111. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/glob.py +0 -0
  112. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/lift_qubits.py +0 -0
  113. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/noise.py +0 -0
  114. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/parallel.py +0 -0
  115. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/py2qasm.py +0 -0
  116. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/qasm2py.py +0 -0
  117. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/passes/unroll_if.py +0 -0
  118. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/__init__.py +0 -0
  119. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/desugar.py +0 -0
  120. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/glob.py +0 -0
  121. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/insert_qubits.py +0 -0
  122. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/native_gates.py +0 -0
  123. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/noise/__init__.py +0 -0
  124. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/noise/heuristic_noise.py +0 -0
  125. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/noise/remove_noise.py +0 -0
  126. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/parallel_to_glob.py +0 -0
  127. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/parallel_to_uop.py +0 -0
  128. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/register.py +0 -0
  129. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/rewrite/uop_to_parallel.py +0 -0
  130. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qasm2/types.py +0 -0
  131. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qbraid/__init__.py +0 -0
  132. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qbraid/lowering.py +0 -0
  133. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qbraid/schema.py +0 -0
  134. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qbraid/simulation_result.py +0 -0
  135. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/qbraid/target.py +0 -0
  136. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/__init__.py +0 -0
  137. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/passes/__init__.py +0 -0
  138. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/passes/canonicalize_ilist.py +0 -0
  139. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/rules/__init__.py +0 -0
  140. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/rules/flatten_ilist.py +0 -0
  141. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/rules/inline_getitem_ilist.py +0 -0
  142. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/rewrite/rules/split_ifs.py +0 -0
  143. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/__init__.py +0 -0
  144. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/_typeinfer.py +0 -0
  145. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/__init__.py +0 -0
  146. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/address_impl.py +0 -0
  147. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/nsites/__init__.py +0 -0
  148. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/nsites/analysis.py +0 -0
  149. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/nsites/impls.py +0 -0
  150. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/nsites/lattice.py +0 -0
  151. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/analysis/schedule.py +0 -0
  152. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/__init__.py +0 -0
  153. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/emit/emit_circuit.py +0 -0
  154. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/emit/noise.py +0 -0
  155. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/emit/op.py +0 -0
  156. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/emit/qubit.py +0 -0
  157. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/emit/runtime.py +0 -0
  158. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/cirq/lowering.py +0 -0
  159. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/groups.py +0 -0
  160. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/lowering.py +0 -0
  161. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/noise/__init__.py +0 -0
  162. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/noise/_dialect.py +0 -0
  163. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/noise/_wrapper.py +0 -0
  164. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/noise/rewrite.py +0 -0
  165. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/noise/stmts.py +0 -0
  166. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/__init__.py +0 -0
  167. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/_dialect.py +0 -0
  168. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/_wrapper.py +0 -0
  169. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/number.py +0 -0
  170. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/rewrite.py +0 -0
  171. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/stdlib.py +0 -0
  172. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/stmts.py +0 -0
  173. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/traits.py +0 -0
  174. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/op/types.py +0 -0
  175. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/parallel.py +0 -0
  176. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/qubit.py +0 -0
  177. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/rewrite/U3_to_clifford.py +0 -0
  178. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/rewrite/__init__.py +0 -0
  179. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/rewrite/canonicalize.py +0 -0
  180. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/rewrite/desugar.py +0 -0
  181. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/rewrite/remove_dangling_qubits.py +0 -0
  182. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/rewrite/wrap_analysis.py +0 -0
  183. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/stdlib/__init__.py +0 -0
  184. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/stdlib/channel.py +0 -0
  185. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/stdlib/gate.py +0 -0
  186. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/types.py +0 -0
  187. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/squin/wire.py +0 -0
  188. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/__init__.py +0 -0
  189. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/_wrappers.py +0 -0
  190. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/__init__.py +0 -0
  191. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/__init__.py +0 -0
  192. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/_dialect.py +0 -0
  193. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/emit.py +0 -0
  194. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/interp.py +0 -0
  195. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/lowering.py +0 -0
  196. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/stmts/__init__.py +0 -0
  197. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/stmts/annotate.py +0 -0
  198. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/stmts/const.py +0 -0
  199. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/auxiliary/types.py +0 -0
  200. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/__init__.py +0 -0
  201. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/_dialect.py +0 -0
  202. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/emit_str.py +0 -0
  203. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/stmts/__init__.py +0 -0
  204. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/stmts/measure.py +0 -0
  205. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/stmts/pp_measure.py +0 -0
  206. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/collapse/stmts/reset.py +0 -0
  207. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/__init__.py +0 -0
  208. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/_dialect.py +0 -0
  209. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/emit.py +0 -0
  210. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/stmts/__init__.py +0 -0
  211. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/stmts/base.py +0 -0
  212. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/stmts/clifford_1q.py +0 -0
  213. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/stmts/clifford_2q.py +0 -0
  214. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/stmts/control_2q.py +0 -0
  215. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/gate/stmts/pp.py +0 -0
  216. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/noise/__init__.py +0 -0
  217. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/noise/_dialect.py +0 -0
  218. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/noise/emit.py +0 -0
  219. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/dialects/noise/stmts.py +0 -0
  220. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/emit/__init__.py +0 -0
  221. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/emit/stim_str.py +0 -0
  222. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/groups.py +0 -0
  223. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/parse/__init__.py +0 -0
  224. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/parse/lowering.py +0 -0
  225. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/passes/simplify_ifs.py +0 -0
  226. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/__init__.py +0 -0
  227. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/ifs_to_stim.py +0 -0
  228. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/py_constant_to_stim.py +0 -0
  229. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/qubit_to_stim.py +0 -0
  230. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/squin_measure.py +0 -0
  231. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/squin_noise.py +0 -0
  232. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/util.py +0 -0
  233. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/wire_identity_elimination.py +0 -0
  234. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/rewrite/wire_to_stim.py +0 -0
  235. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/upstream/__init__.py +0 -0
  236. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/stim/upstream/from_squin.py +0 -0
  237. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/task.py +0 -0
  238. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/test_utils.py +0 -0
  239. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/types.py +0 -0
  240. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/__init__.py +0 -0
  241. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/__init__.py +0 -0
  242. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/animate.py +0 -0
  243. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/base.py +0 -0
  244. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/gate_event.py +0 -0
  245. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/runtime/__init__.py +0 -0
  246. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/runtime/aod.py +0 -0
  247. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/runtime/atoms.py +0 -0
  248. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/runtime/ppoly.py +0 -0
  249. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/runtime/qpustate.py +0 -0
  250. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/src/bloqade/visual/animation/runtime/utils.py +0 -0
  251. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/__init__.py +0 -0
  252. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/analysis/address/test_qubit_analysis.py +0 -0
  253. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/analysis/address/test_wire_analysis.py +0 -0
  254. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/analysis/address/util.py +0 -0
  255. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/analysis/fidelity/test_fidelity.py +0 -0
  256. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/analysis/measure_id/test_measure_id.py +0 -0
  257. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/cirq_utils/noise/test_noise_models.py +0 -0
  258. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/cirq_utils/noise/test_noisy_ghz.py +0 -0
  259. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/cirq_utils/noise/test_one_zone_correlated_noise.py +0 -0
  260. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/cirq_utils/test_lpsolvers.py +0 -0
  261. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/cirq_utils/test_parallelize.py +0 -0
  262. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/cirq_utils/test_transpile.py +0 -0
  263. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/__init__.py +0 -0
  264. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/runtime/__init__.py +0 -0
  265. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/runtime/noise/__init__.py +0 -0
  266. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/runtime/noise/qasm2/test_loss.py +0 -0
  267. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/runtime/noise/qasm2/test_pauli.py +0 -0
  268. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/runtime/test_dyn_memory.py +0 -0
  269. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/runtime/test_qrack.py +0 -0
  270. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/squin/test_kernel.py +0 -0
  271. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/squin/test_noise.py +0 -0
  272. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/pyqrack/test_target.py +0 -0
  273. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/__init__.py +0 -0
  274. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/analysis/test_dag.py +0 -0
  275. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/emit/test_extended.py +0 -0
  276. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/emit/test_extended_noise.py +0 -0
  277. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/emit/test_qasm2.py +0 -0
  278. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/emit/test_qasm2_emit.py +0 -0
  279. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/__init__.py +0 -0
  280. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/invalid_programs/invalid_if.qasm +0 -0
  281. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/README.md +0 -0
  282. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/global.qasm +0 -0
  283. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/iqft1.qasm +0 -0
  284. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/main.qasm +0 -0
  285. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/noise.qasm +0 -0
  286. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/para.qasm +0 -0
  287. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/process_tomo.qasm +0 -0
  288. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/qelib1.inc +0 -0
  289. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/qft.qasm +0 -0
  290. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/qft2.qasm +0 -0
  291. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/rb.qasm +0 -0
  292. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/rep_code.qasm +0 -0
  293. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/ripple_carry_adder.qasm +0 -0
  294. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/tele.qasm +0 -0
  295. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/programs/valid_if.qasm +0 -0
  296. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/test_ast.py +0 -0
  297. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/parse/test_roundtrip.py +0 -0
  298. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/__init__.py +0 -0
  299. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_global_to_parallel.py +0 -0
  300. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_global_to_uop.py +0 -0
  301. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_heuristic_noise.py +0 -0
  302. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_parallel_to_global.py +0 -0
  303. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_parallel_to_uop.py +0 -0
  304. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_qasm2py.py +0 -0
  305. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_unroll_if.py +0 -0
  306. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/passes/test_uop_to_parallel.py +0 -0
  307. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/test_count.py +0 -0
  308. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/test_inline.py +0 -0
  309. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/test_lowering.py +0 -0
  310. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/test_native.py +0 -0
  311. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qasm2/test_two2one.py +0 -0
  312. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qbraid/__init__.py +0 -0
  313. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qbraid/test_clean_circuit.py +0 -0
  314. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qbraid/test_lowering.py +0 -0
  315. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/qbraid/test_target.py +0 -0
  316. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/sample/__init__.py +0 -0
  317. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/sample/test_noise_model.py +0 -0
  318. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/analysis/test_nsites_analysis.py +0 -0
  319. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/cirq/test_cirq_to_squin.py +0 -0
  320. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/cirq/test_squin_noise_to_cirq.py +0 -0
  321. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/cirq/test_squin_to_cirq.py +0 -0
  322. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/op/test_reset.py +0 -0
  323. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/rewrite/test_U3_to_clifford.py +0 -0
  324. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/rewrite/test_canonicalize.py +0 -0
  325. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/rewrite/test_desugar.py +0 -0
  326. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/rewrite/test_mult_rewrite.py +0 -0
  327. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/test_constprop.py +0 -0
  328. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/test_stdlib_shorthands.py +0 -0
  329. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/test_sugar.py +0 -0
  330. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/test_typeinfer.py +0 -0
  331. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/wire/__init__.py +0 -0
  332. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/squin/wire/test_check.py +0 -0
  333. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/__init__.py +0 -0
  334. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/__init__.py +0 -0
  335. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/__init__.py +0 -0
  336. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/__init__.py +0 -0
  337. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/base.py +0 -0
  338. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_1q.py +0 -0
  339. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_ctrl.py +0 -0
  340. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_detector.py +0 -0
  341. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_meas.py +0 -0
  342. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_noise.py +0 -0
  343. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_obs_inc.py +0 -0
  344. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_ppmeas.py +0 -0
  345. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_qubit_coords.py +0 -0
  346. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/emit/test_stim_spp.py +0 -0
  347. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/test_stim_circuits.py +0 -0
  348. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/dialects/stim/test_stim_const.py +0 -0
  349. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/__init__.py +0 -0
  350. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/base.py +0 -0
  351. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/test_parse.py +0 -0
  352. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/test_parse_clifford.py +0 -0
  353. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/test_parse_control.py +0 -0
  354. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/test_parse_custom.py +0 -0
  355. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/test_parse_noise.py +0 -0
  356. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/parse/test_parse_spp.py +0 -0
  357. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/__init__.py +0 -0
  358. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/apply_depolarize1.stim +0 -0
  359. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/apply_loss.stim +0 -0
  360. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/apply_pauli_channel_1.stim +0 -0
  361. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_depolarize1.stim +0 -0
  362. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_depolarize2.stim +0 -0
  363. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_iid_bit_flip_channel.stim +0 -0
  364. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_iid_phase_flip_channel.stim +0 -0
  365. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_iid_y_flip_channel.stim +0 -0
  366. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_1.stim +0 -0
  367. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_1_many_qubits.stim +0 -0
  368. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_1_reuse.stim +0 -0
  369. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_2.stim +0 -0
  370. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/broadcast_pauli_channel_2_reuse_on_4_qubits.stim +0 -0
  371. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/noise/wire_apply_pauli_channel_1.stim +0 -0
  372. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/pure_squin_rewrite.txt +0 -0
  373. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/addition_assignment_measure.stim +0 -0
  374. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/alias_with_measure_list.stim +0 -0
  375. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/complex_storage_index_order.stim +0 -0
  376. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/for_loop_nontrivial_index.stim +0 -0
  377. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/measure_desugar.stim +0 -0
  378. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/nested_for_loop.stim +0 -0
  379. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/nested_list.stim +0 -0
  380. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/pick_if_else.stim +0 -0
  381. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/qubit.stim +0 -0
  382. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/qubit_broadcast.stim +0 -0
  383. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/qubit_loss.stim +0 -0
  384. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/qubit_reset.stim +0 -0
  385. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/record_index_order.stim +0 -0
  386. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/simple_if_rewrite.stim +0 -0
  387. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/qubit/u3_to_clifford.stim +0 -0
  388. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire.stim +0 -0
  389. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_apply.stim +0 -0
  390. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_apply_control.stim +0 -0
  391. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_broadcast.stim +0 -0
  392. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_broadcast_control.stim +0 -0
  393. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_measure.stim +0 -0
  394. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_multiple_apply.stim +0 -0
  395. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_qubit_loss.stim +0 -0
  396. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/stim_reference_programs/wire/wire_reset.stim +0 -0
  397. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/test_squin_meas_to_stim.py +0 -0
  398. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/test_squin_noise_to_stim.py +0 -0
  399. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/passes/test_squin_wire_to_stim.py +0 -0
  400. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/test_measure_id_analysis.py +0 -0
  401. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/wrapper/__init__.py +0 -0
  402. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/stim/wrapper/test_wrapper.py +0 -0
  403. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/test_serialization.py +0 -0
  404. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/test_zone_model.py +0 -0
  405. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/visual/__init__.py +0 -0
  406. {bloqade_circuit-0.7.3 → bloqade_circuit-0.7.4}/test/visual/test_utils.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bloqade-circuit
3
- Version: 0.7.3
3
+ Version: 0.7.4
4
4
  Summary: The software development toolkit for neutral atom arrays.
5
5
  Author-email: Roger-luo <rluo@quera.com>, kaihsin <khwu@quera.com>, weinbe58 <pweinberg@quera.com>, johnzl-777 <jlong@quera.com>
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.10
8
- Requires-Dist: kirin-toolchain~=0.17.17
8
+ Requires-Dist: kirin-toolchain~=0.17.23
9
9
  Requires-Dist: numpy>=1.22.0
10
10
  Requires-Dist: pandas>=2.2.3
11
11
  Requires-Dist: pydantic<2.11.0,>=1.3.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bloqade-circuit"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  description = "The software development toolkit for neutral atom arrays."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -13,7 +13,7 @@ requires-python = ">=3.10"
13
13
  dependencies = [
14
14
  "numpy>=1.22.0",
15
15
  "scipy>=1.13.1",
16
- "kirin-toolchain~=0.17.17",
16
+ "kirin-toolchain~=0.17.23",
17
17
  "rich>=13.9.4",
18
18
  "pydantic>=1.3.0,<2.11.0",
19
19
  "pandas>=2.2.3",
@@ -1,5 +1,4 @@
1
1
  from .squin_to_stim import (
2
2
  SquinToStimPass as SquinToStimPass,
3
3
  StimSimplifyIfs as StimSimplifyIfs,
4
- AggressiveForLoopUnroll as AggressiveForLoopUnroll,
5
4
  )
@@ -1,23 +1,21 @@
1
1
  from dataclasses import dataclass
2
2
 
3
- from kirin.passes import Fold, HintConst, TypeInfer
3
+ from kirin.passes import Fold, TypeInfer
4
4
  from kirin.rewrite import (
5
5
  Walk,
6
6
  Chain,
7
7
  Fixpoint,
8
8
  CFGCompactify,
9
- InlineGetItem,
10
- InlineGetField,
11
9
  DeadCodeElimination,
12
10
  CommonSubexpressionElimination,
13
11
  )
14
- from kirin.dialects import scf, ilist
12
+ from kirin.dialects import ilist
15
13
  from kirin.ir.method import Method
16
14
  from kirin.passes.abc import Pass
17
15
  from kirin.rewrite.abc import RewriteResult
18
16
  from kirin.passes.inline import InlinePass
19
17
  from kirin.rewrite.alias import InlineAlias
20
- from kirin.dialects.scf.unroll import PickIfElse
18
+ from kirin.passes.aggressive import UnrollScf
21
19
 
22
20
  from bloqade.stim.rewrite import (
23
21
  SquinWireToStim,
@@ -41,37 +39,6 @@ from .simplify_ifs import StimSimplifyIfs
41
39
  from ..rewrite.ifs_to_stim import IfToStim
42
40
 
43
41
 
44
- @dataclass
45
- class AggressiveForLoopUnroll(Pass):
46
- """
47
- Aggressive unrolling of for loops, addresses cases where unroll
48
- does not successfully handle nested loops because of a lack of constprop.
49
-
50
- This should be invoked via fixpoint to let this be repeatedly applied until
51
- no further rewrites are possible.
52
- """
53
-
54
- def unsafe_run(self, mt: Method) -> RewriteResult:
55
- rule = Chain(
56
- InlineGetField(),
57
- InlineGetItem(),
58
- scf.unroll.ForLoop(),
59
- scf.trim.UnusedYield(),
60
- )
61
-
62
- # Intentionally only walk ONCE, let fixpoint happen with the WHOLE pass
63
- # so that HintConst gets run right after, allowing subsequent unrolls to happen
64
- rewrite_result = Walk(rule).rewrite(mt.code)
65
-
66
- rewrite_result = (
67
- HintConst(dialects=mt.dialects, no_raise=self.no_raise)
68
- .unsafe_run(mt)
69
- .join(rewrite_result)
70
- )
71
-
72
- return rewrite_result
73
-
74
-
75
42
  @dataclass
76
43
  class SquinToStimPass(Pass):
77
44
 
@@ -82,8 +49,11 @@ class SquinToStimPass(Pass):
82
49
  dialects=mt.dialects, no_raise=self.no_raise
83
50
  ).unsafe_run(mt)
84
51
 
52
+ rewrite_result = Walk(ilist.rewrite.HintLen()).rewrite(mt.code)
53
+ rewrite_result = Fold(self.dialects).unsafe_run(mt).join(rewrite_result)
54
+
85
55
  rewrite_result = (
86
- AggressiveForLoopUnroll(dialects=mt.dialects, no_raise=self.no_raise)
56
+ UnrollScf(dialects=mt.dialects, no_raise=self.no_raise)
87
57
  .fixpoint(mt)
88
58
  .join(rewrite_result)
89
59
  )
@@ -92,11 +62,7 @@ class SquinToStimPass(Pass):
92
62
  Walk(Fixpoint(CFGCompactify())).rewrite(mt.code).join(rewrite_result)
93
63
  )
94
64
 
95
- rewrite_result = (
96
- Walk(Chain(InlineAlias(), PickIfElse()))
97
- .rewrite(mt.code)
98
- .join(rewrite_result)
99
- )
65
+ rewrite_result = Walk(InlineAlias()).rewrite(mt.code).join(rewrite_result)
100
66
 
101
67
  rewrite_result = (
102
68
  StimSimplifyIfs(mt.dialects, no_raise=self.no_raise)
@@ -111,6 +77,12 @@ class SquinToStimPass(Pass):
111
77
  )
112
78
  rewrite_result = Fold(mt.dialects, no_raise=self.no_raise)(mt)
113
79
 
80
+ rewrite_result = (
81
+ UnrollScf(mt.dialects, no_raise=self.no_raise)
82
+ .fixpoint(mt)
83
+ .join(rewrite_result)
84
+ )
85
+
114
86
  rewrite_result = (
115
87
  CanonicalizeIList(dialects=mt.dialects, no_raise=self.no_raise)
116
88
  .unsafe_run(mt)
@@ -0,0 +1,7 @@
1
+
2
+ MZ(0.00000000) 0 1 2 3 4
3
+ X 0
4
+ X 1
5
+ X 2
6
+ X 3
7
+ X 4
@@ -229,3 +229,20 @@ def test_pick_if_else():
229
229
  base_stim_prog = load_reference_program("pick_if_else.stim")
230
230
 
231
231
  assert codegen(main) == base_stim_prog.rstrip()
232
+
233
+
234
+ def test_non_pure_loop_iterator():
235
+ @kernel
236
+ def test_squin_kernel():
237
+ q = qubit.new(5)
238
+ result = qubit.measure(q)
239
+ outputs = []
240
+ for rnd in range(len(result)): # Non-pure loop iterator
241
+ outputs += []
242
+ qubit.apply(op.x(), q[rnd]) # make sure body does something
243
+ return
244
+
245
+ main = test_squin_kernel.similar()
246
+ SquinToStimPass(main.dialects)(main)
247
+ base_stim_prog = load_reference_program("non_pure_loop_iterator.stim")
248
+ assert codegen(main) == base_stim_prog.rstrip()
@@ -102,7 +102,7 @@ wheels = [
102
102
 
103
103
  [[package]]
104
104
  name = "bloqade-circuit"
105
- version = "0.7.3"
105
+ version = "0.7.4"
106
106
  source = { editable = "." }
107
107
  dependencies = [
108
108
  { name = "kirin-toolchain" },
@@ -188,7 +188,7 @@ requires-dist = [
188
188
  { name = "cirq-core", marker = "extra == 'cirq'", specifier = ">=1.4.1" },
189
189
  { name = "cirq-core", extras = ["contrib"], marker = "extra == 'cirq'", specifier = ">=1.4.1" },
190
190
  { name = "ffmpeg", marker = "extra == 'vis'", specifier = ">=1.4" },
191
- { name = "kirin-toolchain", specifier = "~=0.17.17" },
191
+ { name = "kirin-toolchain", specifier = "~=0.17.23" },
192
192
  { name = "lark", marker = "extra == 'qasm2'", specifier = ">=1.2.2" },
193
193
  { name = "matplotlib", marker = "extra == 'vis'", specifier = ">=3.9.2" },
194
194
  { name = "numpy", specifier = ">=1.22.0" },
@@ -261,59 +261,84 @@ wheels = [
261
261
 
262
262
  [[package]]
263
263
  name = "cffi"
264
- version = "1.17.1"
264
+ version = "2.0.0"
265
265
  source = { registry = "https://pypi.org/simple" }
266
266
  dependencies = [
267
- { name = "pycparser" },
268
- ]
269
- sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 }
270
- wheels = [
271
- { url = "https://files.pythonhosted.org/packages/90/07/f44ca684db4e4f08a3fdc6eeb9a0d15dc6883efc7b8c90357fdbf74e186c/cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", size = 182191 },
272
- { url = "https://files.pythonhosted.org/packages/08/fd/cc2fedbd887223f9f5d170c96e57cbf655df9831a6546c1727ae13fa977a/cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", size = 178592 },
273
- { url = "https://files.pythonhosted.org/packages/de/cc/4635c320081c78d6ffc2cab0a76025b691a91204f4aa317d568ff9280a2d/cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", size = 426024 },
274
- { url = "https://files.pythonhosted.org/packages/b6/7b/3b2b250f3aab91abe5f8a51ada1b717935fdaec53f790ad4100fe2ec64d1/cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", size = 448188 },
275
- { url = "https://files.pythonhosted.org/packages/d3/48/1b9283ebbf0ec065148d8de05d647a986c5f22586b18120020452fff8f5d/cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", size = 455571 },
276
- { url = "https://files.pythonhosted.org/packages/40/87/3b8452525437b40f39ca7ff70276679772ee7e8b394934ff60e63b7b090c/cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", size = 436687 },
277
- { url = "https://files.pythonhosted.org/packages/8d/fb/4da72871d177d63649ac449aec2e8a29efe0274035880c7af59101ca2232/cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", size = 446211 },
278
- { url = "https://files.pythonhosted.org/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", size = 461325 },
279
- { url = "https://files.pythonhosted.org/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", size = 438784 },
280
- { url = "https://files.pythonhosted.org/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", size = 461564 },
281
- { url = "https://files.pythonhosted.org/packages/f8/fe/4d41c2f200c4a457933dbd98d3cf4e911870877bd94d9656cc0fcb390681/cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", size = 171804 },
282
- { url = "https://files.pythonhosted.org/packages/d1/b6/0b0f5ab93b0df4acc49cae758c81fe4e5ef26c3ae2e10cc69249dfd8b3ab/cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", size = 181299 },
283
- { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264 },
284
- { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651 },
285
- { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259 },
286
- { url = "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", size = 469200 },
287
- { url = "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", size = 477235 },
288
- { url = "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", size = 459721 },
289
- { url = "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", size = 467242 },
290
- { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999 },
291
- { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242 },
292
- { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604 },
293
- { url = "https://files.pythonhosted.org/packages/34/33/e1b8a1ba29025adbdcda5fb3a36f94c03d771c1b7b12f726ff7fef2ebe36/cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", size = 171727 },
294
- { url = "https://files.pythonhosted.org/packages/3d/97/50228be003bb2802627d28ec0627837ac0bf35c90cf769812056f235b2d1/cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", size = 181400 },
295
- { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 },
296
- { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 },
297
- { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 },
298
- { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 },
299
- { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 },
300
- { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 },
301
- { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 },
302
- { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 },
303
- { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 },
304
- { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 },
305
- { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 },
306
- { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 },
307
- { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 },
308
- { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 },
309
- { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 },
310
- { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 },
311
- { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 },
312
- { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 },
313
- { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 },
314
- { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 },
315
- { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 },
316
- { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 },
267
+ { name = "pycparser", marker = "implementation_name != 'PyPy'" },
268
+ ]
269
+ sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 }
270
+ wheels = [
271
+ { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283 },
272
+ { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504 },
273
+ { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811 },
274
+ { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402 },
275
+ { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217 },
276
+ { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079 },
277
+ { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475 },
278
+ { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829 },
279
+ { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211 },
280
+ { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036 },
281
+ { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184 },
282
+ { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790 },
283
+ { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344 },
284
+ { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560 },
285
+ { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613 },
286
+ { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476 },
287
+ { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374 },
288
+ { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597 },
289
+ { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574 },
290
+ { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971 },
291
+ { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972 },
292
+ { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078 },
293
+ { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076 },
294
+ { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820 },
295
+ { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635 },
296
+ { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 },
297
+ { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 },
298
+ { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 },
299
+ { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 },
300
+ { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 },
301
+ { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 },
302
+ { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 },
303
+ { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 },
304
+ { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 },
305
+ { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 },
306
+ { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 },
307
+ { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 },
308
+ { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230 },
309
+ { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043 },
310
+ { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446 },
311
+ { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101 },
312
+ { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948 },
313
+ { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422 },
314
+ { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499 },
315
+ { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928 },
316
+ { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302 },
317
+ { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909 },
318
+ { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402 },
319
+ { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780 },
320
+ { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320 },
321
+ { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487 },
322
+ { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049 },
323
+ { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793 },
324
+ { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300 },
325
+ { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244 },
326
+ { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828 },
327
+ { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926 },
328
+ { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328 },
329
+ { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650 },
330
+ { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687 },
331
+ { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773 },
332
+ { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013 },
333
+ { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593 },
334
+ { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354 },
335
+ { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480 },
336
+ { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584 },
337
+ { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443 },
338
+ { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437 },
339
+ { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487 },
340
+ { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726 },
341
+ { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195 },
317
342
  ]
318
343
 
319
344
  [[package]]
@@ -897,16 +922,16 @@ wheels = [
897
922
 
898
923
  [[package]]
899
924
  name = "kirin-toolchain"
900
- version = "0.17.22"
925
+ version = "0.17.23"
901
926
  source = { registry = "https://pypi.org/simple" }
902
927
  dependencies = [
903
928
  { name = "beartype" },
904
929
  { name = "rich" },
905
930
  { name = "typing-extensions" },
906
931
  ]
907
- sdist = { url = "https://files.pythonhosted.org/packages/48/58/0fcd2b2c63580cf50aa1a13516d44d329422e35967258696b1bb176d3231/kirin_toolchain-0.17.22.tar.gz", hash = "sha256:a0a05ac5870352564c76c2754f501c158608217613136f17ecf25882cb7e2b03", size = 1184720 }
932
+ sdist = { url = "https://files.pythonhosted.org/packages/58/14/d59c66701b6af873bebcee2b68064865dc639bc0a5ebd6bbceca6d7a0712/kirin_toolchain-0.17.23.tar.gz", hash = "sha256:59ce57a3521b0661d5fb56b4f8a0ddbee3986555f1a24320616c0d44b8d2d715", size = 1189788 }
908
933
  wheels = [
909
- { url = "https://files.pythonhosted.org/packages/63/a5/295afd71ec6c3c116e875ee94a589baf097045e7cbc35d509c47edf9c2fc/kirin_toolchain-0.17.22-py3-none-any.whl", hash = "sha256:516b4dd85ceaa2e94a5a051a8aa8d6264fd33757e6aafc94ef2118384e45f1f4", size = 228152 },
934
+ { url = "https://files.pythonhosted.org/packages/a3/61/4a28ed847885e9aa70422ffa4992dc02f2b55523f67c9b7a148bce960a4b/kirin_toolchain-0.17.23-py3-none-any.whl", hash = "sha256:8fa5c07da9b4dba312529cff932254f944e1cba1133b38700cc5f0fcfc95c22e", size = 230079 },
910
935
  ]
911
936
 
912
937
  [[package]]
@@ -1572,11 +1597,11 @@ wheels = [
1572
1597
 
1573
1598
  [[package]]
1574
1599
  name = "pycparser"
1575
- version = "2.22"
1600
+ version = "2.23"
1576
1601
  source = { registry = "https://pypi.org/simple" }
1577
- sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 }
1602
+ sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734 }
1578
1603
  wheels = [
1579
- { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 },
1604
+ { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140 },
1580
1605
  ]
1581
1606
 
1582
1607
  [[package]]
File without changes