microquantum 0.1.2__tar.gz → 0.4.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 (209) hide show
  1. {microquantum-0.1.2 → microquantum-0.4.0}/LICENSE +20 -30
  2. microquantum-0.4.0/PKG-INFO +265 -0
  3. microquantum-0.4.0/README.md +223 -0
  4. microquantum-0.4.0/pyproject.toml +134 -0
  5. {microquantum-0.1.2 → microquantum-0.4.0}/setup.cfg +4 -4
  6. microquantum-0.4.0/src/microquantum/__init__.py +508 -0
  7. microquantum-0.4.0/src/microquantum/_json.py +84 -0
  8. microquantum-0.4.0/src/microquantum/adapters/__init__.py +16 -0
  9. microquantum-0.4.0/src/microquantum/adapters/base.py +324 -0
  10. microquantum-0.4.0/src/microquantum/adapters/caching.py +189 -0
  11. microquantum-0.4.0/src/microquantum/algorithms/__init__.py +61 -0
  12. microquantum-0.4.0/src/microquantum/algorithms/adapt_vqe.py +417 -0
  13. microquantum-0.4.0/src/microquantum/algorithms/amplitude_estimation.py +353 -0
  14. microquantum-0.4.0/src/microquantum/algorithms/base.py +143 -0
  15. microquantum-0.4.0/src/microquantum/algorithms/bernstein_vazirani.py +159 -0
  16. microquantum-0.4.0/src/microquantum/algorithms/deutsch_jozsa.py +146 -0
  17. microquantum-0.4.0/src/microquantum/algorithms/grover.py +345 -0
  18. microquantum-0.4.0/src/microquantum/algorithms/hamiltonian_simulation.py +332 -0
  19. microquantum-0.4.0/src/microquantum/algorithms/hhl.py +329 -0
  20. microquantum-0.4.0/src/microquantum/algorithms/phase_estimation.py +338 -0
  21. microquantum-0.4.0/src/microquantum/algorithms/qaoa.py +384 -0
  22. microquantum-0.4.0/src/microquantum/algorithms/qft.py +102 -0
  23. microquantum-0.4.0/src/microquantum/algorithms/quantum_walk.py +417 -0
  24. microquantum-0.4.0/src/microquantum/algorithms/shor.py +349 -0
  25. microquantum-0.4.0/src/microquantum/algorithms/simulation_enhanced.py +232 -0
  26. microquantum-0.4.0/src/microquantum/algorithms/vqd.py +193 -0
  27. microquantum-0.4.0/src/microquantum/algorithms/vqe.py +295 -0
  28. microquantum-0.4.0/src/microquantum/analysis/__init__.py +52 -0
  29. microquantum-0.4.0/src/microquantum/analysis/aggregation.py +241 -0
  30. microquantum-0.4.0/src/microquantum/analysis/expectation.py +233 -0
  31. microquantum-0.4.0/src/microquantum/analysis/sampling.py +267 -0
  32. microquantum-0.4.0/src/microquantum/analysis/state.py +273 -0
  33. microquantum-0.4.0/src/microquantum/analysis/statistics.py +171 -0
  34. microquantum-0.4.0/src/microquantum/analytics/__init__.py +42 -0
  35. microquantum-0.4.0/src/microquantum/analytics/base.py +130 -0
  36. microquantum-0.4.0/src/microquantum/analytics/csv_loader.py +120 -0
  37. microquantum-0.4.0/src/microquantum/analytics/result.py +182 -0
  38. microquantum-0.4.0/src/microquantum/analytics/visualization.py +316 -0
  39. microquantum-0.4.0/src/microquantum/backends/__init__.py +84 -0
  40. microquantum-0.4.0/src/microquantum/backends/adapter.py +82 -0
  41. microquantum-0.4.0/src/microquantum/backends/array_backend.py +232 -0
  42. microquantum-0.4.0/src/microquantum/backends/base.py +588 -0
  43. microquantum-0.4.0/src/microquantum/backends/capabilities.py +297 -0
  44. microquantum-0.4.0/src/microquantum/backends/density_matrix.py +118 -0
  45. microquantum-0.4.0/src/microquantum/backends/executor.py +438 -0
  46. microquantum-0.4.0/src/microquantum/backends/local.py +60 -0
  47. microquantum-0.4.0/src/microquantum/backends/mock.py +130 -0
  48. microquantum-0.4.0/src/microquantum/backends/mps.py +484 -0
  49. microquantum-0.4.0/src/microquantum/backends/noise.py +437 -0
  50. microquantum-0.4.0/src/microquantum/backends/provider.py +114 -0
  51. microquantum-0.4.0/src/microquantum/backends/registry.py +223 -0
  52. microquantum-0.4.0/src/microquantum/backends/statevector.py +74 -0
  53. microquantum-0.4.0/src/microquantum/backends/tensor_network.py +493 -0
  54. microquantum-0.4.0/src/microquantum/benchmarks/__init__.py +39 -0
  55. microquantum-0.4.0/src/microquantum/benchmarks/clops.py +113 -0
  56. microquantum-0.4.0/src/microquantum/benchmarks/cycle_benchmarking.py +341 -0
  57. microquantum-0.4.0/src/microquantum/benchmarks/gate_set_tomography.py +185 -0
  58. microquantum-0.4.0/src/microquantum/benchmarks/quantum_volume.py +213 -0
  59. microquantum-0.4.0/src/microquantum/benchmarks/randomized_benchmarking.py +314 -0
  60. microquantum-0.4.0/src/microquantum/benchmarks/xeb.py +194 -0
  61. microquantum-0.4.0/src/microquantum/chemistry/__init__.py +15 -0
  62. microquantum-0.4.0/src/microquantum/chemistry/ansatz.py +252 -0
  63. microquantum-0.4.0/src/microquantum/chemistry/hamiltonians.py +154 -0
  64. microquantum-0.4.0/src/microquantum/core/__init__.py +76 -0
  65. microquantum-0.4.0/src/microquantum/core/circuit.py +764 -0
  66. microquantum-0.4.0/src/microquantum/core/coupling.py +276 -0
  67. microquantum-0.4.0/src/microquantum/core/density_matrix.py +228 -0
  68. microquantum-0.4.0/src/microquantum/core/device.py +168 -0
  69. microquantum-0.4.0/src/microquantum/core/dynamic.py +651 -0
  70. microquantum-0.4.0/src/microquantum/core/engine.py +111 -0
  71. microquantum-0.4.0/src/microquantum/core/gradient.py +196 -0
  72. microquantum-0.4.0/src/microquantum/core/measurement.py +308 -0
  73. microquantum-0.4.0/src/microquantum/core/operators.py +318 -0
  74. microquantum-0.4.0/src/microquantum/core/optimization.py +220 -0
  75. microquantum-0.4.0/src/microquantum/core/parameter.py +159 -0
  76. microquantum-0.4.0/src/microquantum/core/pauli.py +360 -0
  77. microquantum-0.4.0/src/microquantum/core/qasm.py +247 -0
  78. microquantum-0.4.0/src/microquantum/core/registers.py +143 -0
  79. microquantum-0.4.0/src/microquantum/core/resources.py +163 -0
  80. microquantum-0.4.0/src/microquantum/core/serialization.py +176 -0
  81. microquantum-0.4.0/src/microquantum/core/state.py +166 -0
  82. microquantum-0.4.0/src/microquantum/core/tensor.py +133 -0
  83. microquantum-0.4.0/src/microquantum/core/transpiler.py +1015 -0
  84. microquantum-0.4.0/src/microquantum/core/visualization.py +226 -0
  85. microquantum-0.4.0/src/microquantum/experiments/__init__.py +39 -0
  86. microquantum-0.4.0/src/microquantum/experiments/experiment.py +532 -0
  87. microquantum-0.4.0/src/microquantum/experiments/record.py +509 -0
  88. microquantum-0.4.0/src/microquantum/experiments/sweep.py +283 -0
  89. microquantum-0.4.0/src/microquantum/ir/__init__.py +79 -0
  90. microquantum-0.4.0/src/microquantum/ir/builder.py +234 -0
  91. microquantum-0.4.0/src/microquantum/ir/circuit_ir.py +247 -0
  92. microquantum-0.4.0/src/microquantum/ir/compiler.py +224 -0
  93. microquantum-0.4.0/src/microquantum/ir/nodes.py +302 -0
  94. microquantum-0.4.0/src/microquantum/ir/passes.py +413 -0
  95. microquantum-0.4.0/src/microquantum/ir/validation.py +143 -0
  96. microquantum-0.4.0/src/microquantum/mitigation/__init__.py +21 -0
  97. microquantum-0.4.0/src/microquantum/mitigation/mem.py +198 -0
  98. microquantum-0.4.0/src/microquantum/mitigation/pec.py +125 -0
  99. microquantum-0.4.0/src/microquantum/mitigation/zne.py +243 -0
  100. microquantum-0.4.0/src/microquantum/optimization/__init__.py +7 -0
  101. microquantum-0.4.0/src/microquantum/optimization/qubo.py +338 -0
  102. microquantum-0.4.0/src/microquantum/optimizers/__init__.py +25 -0
  103. microquantum-0.4.0/src/microquantum/optimizers/base.py +99 -0
  104. microquantum-0.4.0/src/microquantum/optimizers/gradient_descent.py +123 -0
  105. microquantum-0.4.0/src/microquantum/optimizers/gradient_free.py +252 -0
  106. microquantum-0.4.0/src/microquantum/optimizers/quasi_newton.py +258 -0
  107. microquantum-0.4.0/src/microquantum/optimizers/spsa.py +240 -0
  108. microquantum-0.4.0/src/microquantum/problems/__init__.py +34 -0
  109. microquantum-0.4.0/src/microquantum/problems/base.py +121 -0
  110. microquantum-0.4.0/src/microquantum/problems/eigenvalue.py +199 -0
  111. microquantum-0.4.0/src/microquantum/problems/optimization.py +244 -0
  112. microquantum-0.4.0/src/microquantum/problems/search.py +123 -0
  113. microquantum-0.4.0/src/microquantum/providers/__init__.py +30 -0
  114. microquantum-0.4.0/src/microquantum/providers/backend.py +172 -0
  115. microquantum-0.4.0/src/microquantum/providers/base.py +163 -0
  116. microquantum-0.4.0/src/microquantum/providers/http.py +79 -0
  117. microquantum-0.4.0/src/microquantum/providers/ibm.py +178 -0
  118. microquantum-0.4.0/src/microquantum/providers/ionq.py +154 -0
  119. microquantum-0.4.0/src/microquantum/providers/serializer.py +172 -0
  120. microquantum-0.4.0/src/microquantum/py.typed +0 -0
  121. microquantum-0.4.0/src/microquantum/qec/__init__.py +21 -0
  122. microquantum-0.4.0/src/microquantum/qec/repetition.py +296 -0
  123. microquantum-0.4.0/src/microquantum/qec/shor.py +226 -0
  124. microquantum-0.4.0/src/microquantum/qml/__init__.py +29 -0
  125. microquantum-0.4.0/src/microquantum/qml/classifier.py +279 -0
  126. microquantum-0.4.0/src/microquantum/qml/encoding.py +286 -0
  127. microquantum-0.4.0/src/microquantum/qml/kernels.py +176 -0
  128. microquantum-0.4.0/src/microquantum/runtime/__init__.py +229 -0
  129. microquantum-0.4.0/src/microquantum/runtime/plan.py +268 -0
  130. microquantum-0.4.0/src/microquantum/runtime/runtime.py +970 -0
  131. microquantum-0.4.0/src/microquantum/runtime/strategy.py +80 -0
  132. microquantum-0.4.0/src/microquantum/runtime/trace.py +103 -0
  133. microquantum-0.4.0/src/microquantum.egg-info/PKG-INFO +265 -0
  134. microquantum-0.4.0/src/microquantum.egg-info/SOURCES.txt +199 -0
  135. microquantum-0.4.0/src/microquantum.egg-info/requires.txt +15 -0
  136. microquantum-0.4.0/tests/test_adapt_vqe.py +72 -0
  137. microquantum-0.4.0/tests/test_adapter_framework.py +310 -0
  138. microquantum-0.4.0/tests/test_advanced_noise.py +195 -0
  139. microquantum-0.4.0/tests/test_algorithm_analysis_integration.py +216 -0
  140. microquantum-0.4.0/tests/test_algorithm_layer.py +171 -0
  141. microquantum-0.4.0/tests/test_amplitude_estimation.py +66 -0
  142. microquantum-0.4.0/tests/test_analysis_layer.py +342 -0
  143. microquantum-0.4.0/tests/test_backend_provider.py +589 -0
  144. microquantum-0.4.0/tests/test_backends.py +129 -0
  145. microquantum-0.4.0/tests/test_benchmarks.py +93 -0
  146. microquantum-0.4.0/tests/test_bernstein_vazirani.py +63 -0
  147. microquantum-0.4.0/tests/test_chemistry.py +134 -0
  148. microquantum-0.4.0/tests/test_circuit.py +396 -0
  149. microquantum-0.4.0/tests/test_circuit_engine_integration.py +142 -0
  150. microquantum-0.4.0/tests/test_circuit_io.py +132 -0
  151. microquantum-0.4.0/tests/test_coupling.py +171 -0
  152. microquantum-0.4.0/tests/test_cycle_benchmarking.py +187 -0
  153. microquantum-0.4.0/tests/test_density_matrix.py +189 -0
  154. microquantum-0.4.0/tests/test_density_matrix_backend.py +103 -0
  155. microquantum-0.4.0/tests/test_deutsch_jozsa.py +52 -0
  156. microquantum-0.4.0/tests/test_engine.py +298 -0
  157. microquantum-0.4.0/tests/test_experiment_layer.py +435 -0
  158. microquantum-0.4.0/tests/test_gate_set_tomography.py +61 -0
  159. microquantum-0.4.0/tests/test_gradient.py +215 -0
  160. microquantum-0.4.0/tests/test_gradient_free_optimizers.py +140 -0
  161. microquantum-0.4.0/tests/test_grover.py +144 -0
  162. microquantum-0.4.0/tests/test_hamiltonian_simulation.py +107 -0
  163. microquantum-0.4.0/tests/test_hhl.py +126 -0
  164. microquantum-0.4.0/tests/test_ir.py +528 -0
  165. microquantum-0.4.0/tests/test_measurement.py +282 -0
  166. microquantum-0.4.0/tests/test_mitigation.py +154 -0
  167. microquantum-0.4.0/tests/test_new_modules.py +243 -0
  168. microquantum-0.4.0/tests/test_noise.py +138 -0
  169. microquantum-0.4.0/tests/test_operators.py +402 -0
  170. microquantum-0.4.0/tests/test_optimization.py +318 -0
  171. microquantum-0.4.0/tests/test_optimizer_bfgs.py +92 -0
  172. microquantum-0.4.0/tests/test_parameter.py +277 -0
  173. microquantum-0.4.0/tests/test_pauli.py +406 -0
  174. microquantum-0.4.0/tests/test_phase12_analytics.py +226 -0
  175. microquantum-0.4.0/tests/test_phase13.py +312 -0
  176. microquantum-0.4.0/tests/test_phase14.py +362 -0
  177. microquantum-0.4.0/tests/test_phase15.py +341 -0
  178. microquantum-0.4.0/tests/test_problems.py +208 -0
  179. microquantum-0.4.0/tests/test_public_contracts.py +311 -0
  180. microquantum-0.4.0/tests/test_qaoa.py +171 -0
  181. microquantum-0.4.0/tests/test_qasm_viz_serial.py +400 -0
  182. microquantum-0.4.0/tests/test_qec.py +183 -0
  183. microquantum-0.4.0/tests/test_qml.py +262 -0
  184. microquantum-0.4.0/tests/test_quantum_walk.py +106 -0
  185. microquantum-0.4.0/tests/test_randomized_benchmarking.py +69 -0
  186. microquantum-0.4.0/tests/test_registers.py +150 -0
  187. microquantum-0.4.0/tests/test_runtime.py +644 -0
  188. microquantum-0.4.0/tests/test_runtime_integration.py +112 -0
  189. microquantum-0.4.0/tests/test_shor.py +65 -0
  190. microquantum-0.4.0/tests/test_simulation_enhanced.py +141 -0
  191. microquantum-0.4.0/tests/test_spsa.py +124 -0
  192. microquantum-0.4.0/tests/test_state.py +259 -0
  193. microquantum-0.4.0/tests/test_statevector_backend.py +102 -0
  194. microquantum-0.4.0/tests/test_structural.py +429 -0
  195. microquantum-0.4.0/tests/test_tensor.py +240 -0
  196. microquantum-0.4.0/tests/test_transpiler.py +158 -0
  197. microquantum-0.4.0/tests/test_vqd.py +120 -0
  198. microquantum-0.4.0/tests/test_vqe.py +222 -0
  199. microquantum-0.4.0/tests/test_xeb.py +61 -0
  200. microquantum-0.1.2/PKG-INFO +0 -40
  201. microquantum-0.1.2/README.md +0 -30
  202. microquantum-0.1.2/pyproject.toml +0 -14
  203. microquantum-0.1.2/src/microquantum/__init__.py +0 -3
  204. microquantum-0.1.2/src/microquantum/simulator.py +0 -56
  205. microquantum-0.1.2/src/microquantum.egg-info/PKG-INFO +0 -40
  206. microquantum-0.1.2/src/microquantum.egg-info/SOURCES.txt +0 -10
  207. microquantum-0.1.2/src/microquantum.egg-info/requires.txt +0 -1
  208. {microquantum-0.1.2 → microquantum-0.4.0}/src/microquantum.egg-info/dependency_links.txt +0 -0
  209. {microquantum-0.1.2 → microquantum-0.4.0}/src/microquantum.egg-info/top_level.txt +0 -0
@@ -1,31 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Ajit Kumar
4
-
5
- (Standard MIT License terms apply here)
6
-
7
- ### `LICENSE`
8
- An open-source license is highly recommended. You can use the standard MIT License:
9
-
10
- ```text
11
- MIT License
12
-
13
- Copyright (c) 2026 Your Name
14
-
15
- Permission is hereby granted, free of charge, to any person obtaining a copy
16
- of this software and associated documentation files (the "Software"), to deal
17
- in the Software without restriction, including without limitation the rights
18
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
- copies of the Software, and to permit persons to whom the Software is
20
- furnished to do so, subject to the following conditions:
21
-
22
- The above copyright notice and this permission notice shall be included in all
23
- copies or substantial portions of the Software.
24
-
25
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ajit Kumar
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
21
  SOFTWARE.
@@ -0,0 +1,265 @@
1
+ Metadata-Version: 2.4
2
+ Name: microquantum
3
+ Version: 0.4.0
4
+ Summary: A lightweight, NumPy-only quantum computing SDK foundation: circuits, problems, algorithms, a pluggable execution runtime, backends, experiments and analysis.
5
+ Author: Ajit Kumar
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/ajit-ai/microquantum
8
+ Project-URL: Repository, https://github.com/ajit-ai/microquantum
9
+ Project-URL: Documentation, https://ajit-ai.github.io/microquantum/
10
+ Project-URL: Issues, https://github.com/ajit-ai/microquantum/issues
11
+ Project-URL: Changelog, https://github.com/ajit-ai/microquantum/blob/main/CHANGELOG.md
12
+ Keywords: quantum,quantum-computing,quantum-circuit,simulator,qiskit-alternative,vqe,qaoa,grover,shor,qml,qec,qubo,optimization,sdk
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
23
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
24
+ Classifier: Topic :: Scientific/Engineering :: Physics
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: numpy>=1.20.0
30
+ Provides-Extra: docs
31
+ Requires-Dist: sphinx>=8.1.3; extra == "docs"
32
+ Requires-Dist: sphinx-autoapi>=3.8.0; extra == "docs"
33
+ Requires-Dist: furo>=2024.8.6; extra == "docs"
34
+ Provides-Extra: gpu
35
+ Requires-Dist: cupy-cuda12x>=12.0; extra == "gpu"
36
+ Provides-Extra: all
37
+ Requires-Dist: cupy-cuda12x>=12.0; extra == "all"
38
+ Requires-Dist: sphinx>=8.1.3; extra == "all"
39
+ Requires-Dist: sphinx-autoapi>=3.8.0; extra == "all"
40
+ Requires-Dist: furo>=2024.8.6; extra == "all"
41
+ Dynamic: license-file
42
+
43
+ # Microquantum
44
+
45
+ **A lightweight, NumPy-only quantum computing SDK — MIT licensed and dependency-light.**
46
+
47
+ [![CI](https://img.shields.io/github/actions/workflow/status/ajit-ai/microquantum/ci.yml?branch=main&label=CI)](https://github.com/ajit-ai/microquantum/actions)
48
+ [![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://ajit-ai.github.io/microquantum/)
49
+ [![PyPI - Version](https://img.shields.io/pypi/v/microquantum)](https://pypi.org/project/microquantum/)
50
+ [![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/microquantum)](https://pypi.org/project/microquantum/)
51
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/microquantum)](https://pypi.org/project/microquantum/)
52
+ [![License: MIT](https://img.shields.io/github/license/ajit-ai/microquantum)](LICENSE)
53
+
54
+ microquantum is an **independent quantum computing SDK**. It is **not** a port or
55
+ wrapper around Qiskit, Cirq, or OpenQASM — every circuit, operator, simulator and
56
+ algorithm is implemented from scratch with NumPy as the only hard dependency.
57
+
58
+
59
+ > **Positioning**: an *SDK* — a complete kit for building quantum applications.
60
+ > The core engine and algorithms form a *library* (you call it); the
61
+ > `DomainAdapter` pipeline and backend/provider abstractions form an embedded
62
+ > *framework* (it calls your code); a standardized result contract ties it all
63
+ > together for downstream solvers.
64
+
65
+ ---
66
+
67
+ ## What's Included
68
+
69
+ | System | Description |
70
+ |---|---|
71
+ | **Core engine** | `QuantumCircuit`, operators, Pauli algebra, `StateVector` / `DensityMatrix`, measurement, gradients, registers, serialization, transpiler + `PassManager` |
72
+ | **Algorithms** | VQE, ADAPT-VQE, VQD, QAOA, Grover, Shor, QFT, phase/amplitude estimation, HHL, Hamiltonian simulation (+ qDRIFT, 4th-order Trotter), quantum walks, BV, DJ |
73
+ | **Backends** | Statevector, noisy DensityMatrix, MPS and tree tensor networks, pluggable NumPy/CuPy array backend, high-level `Executor`, async `Job` |
74
+ | **Execution results & analytics** | structured `ExecutionRecord`s, `ParameterSweep`, `Experiment` / `ExperimentResult`, sampling / expectation / state analysis and `ResultAggregator` (MQ-07) |
75
+ | **Providers** | Raw REST clients for IBM Quantum and IonQ (no Qiskit/Cirq/OpenQASM), `CircuitSerializer`, `HardwareBackend` adapter |
76
+ | **QML / QEC** | Encodings, quantum kernels, variational classifier; repetition/Shor/bit-flip/phase-flip codes |
77
+ | **Chemistry** | H₂/LiH Hamiltonians, UCCSD and hardware-efficient ansätze |
78
+ | **Optimization** | QUBO/Ising toolchain: `QUBOBuilder`, `IsingConverter`, constraint penalties |
79
+ | **Benchmarks** | Quantum volume, randomized benchmarking, XEB, CLOPS, GST, cycle benchmarking, layer fidelity |
80
+ | **Mitigation** | Zero-noise extrapolation (ZNE), probabilistic error cancellation (PEC), measurement-error mitigation (MEM) |
81
+ | **Result contract** | `microquantum.analytics.result.Result` — a standardized, JSON-safe decision schema |
82
+ | **Domain framework** | `DomainAdapter` ABC: validate → encode → execute → decode, with `QuantumProblem` / `QuantumResult` / `ResultCache` |
83
+
84
+ ---
85
+ ---
86
+
87
+ ## Installation
88
+
89
+ Requires **Python 3.10, 3.11, 3.12, or 3.13** and NumPy ≥ 1.20 (installed automatically).
90
+
91
+ ```bash
92
+ pip install microquantum
93
+ ```
94
+
95
+ Or with [uv](https://docs.astral.sh/uv/):
96
+
97
+ ```bash
98
+ uv pip install microquantum
99
+ ```
100
+
101
+ Or from source:
102
+
103
+ ```bash
104
+ git clone https://github.com/ajit-ai/microquantum.git
105
+ cd microquantum
106
+ uv sync --group dev
107
+ ```
108
+
109
+ Documentation for the Developer Preview is published at
110
+ <https://ajit-ai.github.io/microquantum/> (auto-deployed from the `main`
111
+ branch); the Sphinx sources live in `docs/`.
112
+
113
+ Optional GPU acceleration (NumPy stays the default; the CuPy backend is opt-in):
114
+
115
+ ```bash
116
+ pip install "microquantum[gpu]"
117
+ ```
118
+
119
+ Verify:
120
+
121
+ ```bash
122
+ python -c "import microquantum; print(microquantum.__version__)"
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Quick Start
128
+
129
+ ### 1. Bell state in two minutes
130
+
131
+ ```python
132
+ from microquantum import Executor, QuantumCircuit, StatevectorBackend
133
+
134
+ qc = QuantumCircuit(2)
135
+ qc.h(0) # Hadamard on qubit 0
136
+ qc.cx(0, 1) # CNOT (control=0, target=1)
137
+
138
+ result = Executor(backend=StatevectorBackend()).run(qc, shots=1024)
139
+ print(result.counts) # {'00': ~512, '11': ~512}
140
+ print(result.most_frequent()) # '00' or '11'
141
+ ```
142
+
143
+ `Executor` is the single high-level entry point: pass any `Backend` (statevector,
144
+ noisy density matrix, MPS, tensor network, or a hardware provider) — or a
145
+ `NoiseModel` for built-in noisy simulation. Every `Backend` also exposes a direct
146
+ high-level `backend.run(circuit, shots=1024, seed=None)` call.
147
+
148
+ ### 2. The standardized result contract
149
+
150
+ ```python
151
+ from microquantum.analytics.result import Result
152
+
153
+ result = Result(
154
+ problem="optimization",
155
+ solution={"route": "A->C->B", "cost": 42.0},
156
+ confidence=0.91,
157
+ qubit_count=8,
158
+ runtime_ms=48.3,
159
+ baseline={"route": "A->B->C", "cost": 51.7},
160
+ )
161
+ print(result.to_json())
162
+ print(result.improved_over_baseline) # True
163
+ ```
164
+
165
+ ### 3. Running on real hardware
166
+
167
+ ```python
168
+ from microquantum import Executor, HardwareBackend, IBMQuantumCredentials, IBMQuantumProvider
169
+
170
+ provider = IBMQuantumProvider(IBMQuantumCredentials(api_token="..."))
171
+ backend = HardwareBackend(provider)
172
+
173
+ result = Executor(backend=backend).run(qc, shots=1024)
174
+ ```
175
+
176
+ ---
177
+
178
+ ## Architecture Principles
179
+
180
+ 1. **Independent implementation** — all quantum operations are implemented from
181
+ scratch using NumPy. No dependence on Qiskit, Cirq, OpenQASM, Strawberry
182
+ Fields, or any other quantum SDK.
183
+ 2. **Layer separation** — each layer only depends on layers below it:
184
+ Analytics never touches raw matrices; domain adapters never bypass the core engine.
185
+
186
+ ```
187
+ Engine → Algorithms → Backends → Providers → NumPy
188
+ ```
189
+
190
+ 3. **Big-endian qubit ordering** — qubit 0 is the most significant bit; tensor
191
+ axis 0 = qubit 0. This matches the mathematical convention.
192
+ 4. **Standardized results** — every successful run funnels into a typed result
193
+ (`BackendResult`, `ExecutorResult`, `*Result`, `Result`) that can be
194
+ serialized with `to_dict()` / `to_json()`.
195
+ 5. **Test-driven** — a full test suite ships with the SDK and runs in CI.
196
+
197
+ ---
198
+
199
+ ## Project Structure
200
+
201
+ ```
202
+ microquantum/
203
+ ├── src/microquantum/
204
+ │ ├── core/ # Quantum engine, circuits, operators, transpiler
205
+ │ ├── algorithms/ # 23+ quantum algorithms
206
+ │ ├── experiments/ # Execution records, sweeps, experiments (MQ-07)
207
+ │ ├── analysis/ # Sampling / expectation / state analysis (MQ-07)
208
+ │ ├── backends/ # Simulators, noise, tensor networks, Executor
209
+ │ ├── providers/ # IBM Quantum & IonQ hardware clients (REST)
210
+ │ ├── analytics/ # CSV loading, result contract, analytics base
211
+ │ ├── optimization/ # QUBO / Ising toolchain
212
+ │ ├── qml/ # Quantum machine learning
213
+ │ ├── qec/ # Error correction codes
214
+ │ ├── benchmarks/ # Quantum benchmarking suite
215
+ │ ├── chemistry/ # Molecular Hamiltonians and ansätze
216
+ │ ├── mitigation/ # Error mitigation (ZNE, PEC, MEM)
217
+ │ └── optimizers/ # Classical optimizers
218
+ ├── examples/ # Runnable demo scripts
219
+ ├── docs/ # Sphinx documentation
220
+ └── pyproject.toml # Package configuration
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Development
226
+
227
+ ```bash
228
+ # Install dev tooling (pytest, coverage, mypy, ruff, sphinx)
229
+ uv sync --group dev
230
+
231
+ # Run the test suite (with coverage report)
232
+ uv run pytest tests/
233
+
234
+ # Type check (0 errors expected)
235
+ uv run mypy src/microquantum/ --ignore-missing-imports
236
+
237
+ # Lint / format
238
+ uv run ruff check src tests examples
239
+
240
+ # Build the docs
241
+ uv run sphinx-build docs docs/_build/html
242
+ ```
243
+
244
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the contribution workflow and
245
+ [CHANGELOG.md](CHANGELOG.md) for release history.
246
+
247
+ ---
248
+
249
+ ## Roadmap
250
+
251
+ - **v0.4.0** (current) — Developer Preview (see `docs/releases/developer-preview.rst`):
252
+ complete warning-free documentation with auto-generated API reference,
253
+ GitHub Pages deployment, and a consolidated CI/packaging pipeline.
254
+ - **v0.3.0** — public open-source release: unified `Backend.run()`,
255
+ serializable results (`to_dict()`), SPDX/legacy metadata cleanup, coverage +
256
+ ruff gates, SDK-only docs.
257
+ - **Next** — automated PyPI release workflow on version tags, stricter mypy
258
+ coverage, more hardware providers and tutorials.
259
+
260
+ ---
261
+
262
+ ## License
263
+
264
+ MIT — see [LICENSE](LICENSE). Built as an independent, dependency-light quantum
265
+ computing SDK: use it, fork it, build on it.
@@ -0,0 +1,223 @@
1
+ # Microquantum
2
+
3
+ **A lightweight, NumPy-only quantum computing SDK — MIT licensed and dependency-light.**
4
+
5
+ [![CI](https://img.shields.io/github/actions/workflow/status/ajit-ai/microquantum/ci.yml?branch=main&label=CI)](https://github.com/ajit-ai/microquantum/actions)
6
+ [![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://ajit-ai.github.io/microquantum/)
7
+ [![PyPI - Version](https://img.shields.io/pypi/v/microquantum)](https://pypi.org/project/microquantum/)
8
+ [![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/microquantum)](https://pypi.org/project/microquantum/)
9
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/microquantum)](https://pypi.org/project/microquantum/)
10
+ [![License: MIT](https://img.shields.io/github/license/ajit-ai/microquantum)](LICENSE)
11
+
12
+ microquantum is an **independent quantum computing SDK**. It is **not** a port or
13
+ wrapper around Qiskit, Cirq, or OpenQASM — every circuit, operator, simulator and
14
+ algorithm is implemented from scratch with NumPy as the only hard dependency.
15
+
16
+
17
+ > **Positioning**: an *SDK* — a complete kit for building quantum applications.
18
+ > The core engine and algorithms form a *library* (you call it); the
19
+ > `DomainAdapter` pipeline and backend/provider abstractions form an embedded
20
+ > *framework* (it calls your code); a standardized result contract ties it all
21
+ > together for downstream solvers.
22
+
23
+ ---
24
+
25
+ ## What's Included
26
+
27
+ | System | Description |
28
+ |---|---|
29
+ | **Core engine** | `QuantumCircuit`, operators, Pauli algebra, `StateVector` / `DensityMatrix`, measurement, gradients, registers, serialization, transpiler + `PassManager` |
30
+ | **Algorithms** | VQE, ADAPT-VQE, VQD, QAOA, Grover, Shor, QFT, phase/amplitude estimation, HHL, Hamiltonian simulation (+ qDRIFT, 4th-order Trotter), quantum walks, BV, DJ |
31
+ | **Backends** | Statevector, noisy DensityMatrix, MPS and tree tensor networks, pluggable NumPy/CuPy array backend, high-level `Executor`, async `Job` |
32
+ | **Execution results & analytics** | structured `ExecutionRecord`s, `ParameterSweep`, `Experiment` / `ExperimentResult`, sampling / expectation / state analysis and `ResultAggregator` (MQ-07) |
33
+ | **Providers** | Raw REST clients for IBM Quantum and IonQ (no Qiskit/Cirq/OpenQASM), `CircuitSerializer`, `HardwareBackend` adapter |
34
+ | **QML / QEC** | Encodings, quantum kernels, variational classifier; repetition/Shor/bit-flip/phase-flip codes |
35
+ | **Chemistry** | H₂/LiH Hamiltonians, UCCSD and hardware-efficient ansätze |
36
+ | **Optimization** | QUBO/Ising toolchain: `QUBOBuilder`, `IsingConverter`, constraint penalties |
37
+ | **Benchmarks** | Quantum volume, randomized benchmarking, XEB, CLOPS, GST, cycle benchmarking, layer fidelity |
38
+ | **Mitigation** | Zero-noise extrapolation (ZNE), probabilistic error cancellation (PEC), measurement-error mitigation (MEM) |
39
+ | **Result contract** | `microquantum.analytics.result.Result` — a standardized, JSON-safe decision schema |
40
+ | **Domain framework** | `DomainAdapter` ABC: validate → encode → execute → decode, with `QuantumProblem` / `QuantumResult` / `ResultCache` |
41
+
42
+ ---
43
+ ---
44
+
45
+ ## Installation
46
+
47
+ Requires **Python 3.10, 3.11, 3.12, or 3.13** and NumPy ≥ 1.20 (installed automatically).
48
+
49
+ ```bash
50
+ pip install microquantum
51
+ ```
52
+
53
+ Or with [uv](https://docs.astral.sh/uv/):
54
+
55
+ ```bash
56
+ uv pip install microquantum
57
+ ```
58
+
59
+ Or from source:
60
+
61
+ ```bash
62
+ git clone https://github.com/ajit-ai/microquantum.git
63
+ cd microquantum
64
+ uv sync --group dev
65
+ ```
66
+
67
+ Documentation for the Developer Preview is published at
68
+ <https://ajit-ai.github.io/microquantum/> (auto-deployed from the `main`
69
+ branch); the Sphinx sources live in `docs/`.
70
+
71
+ Optional GPU acceleration (NumPy stays the default; the CuPy backend is opt-in):
72
+
73
+ ```bash
74
+ pip install "microquantum[gpu]"
75
+ ```
76
+
77
+ Verify:
78
+
79
+ ```bash
80
+ python -c "import microquantum; print(microquantum.__version__)"
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Quick Start
86
+
87
+ ### 1. Bell state in two minutes
88
+
89
+ ```python
90
+ from microquantum import Executor, QuantumCircuit, StatevectorBackend
91
+
92
+ qc = QuantumCircuit(2)
93
+ qc.h(0) # Hadamard on qubit 0
94
+ qc.cx(0, 1) # CNOT (control=0, target=1)
95
+
96
+ result = Executor(backend=StatevectorBackend()).run(qc, shots=1024)
97
+ print(result.counts) # {'00': ~512, '11': ~512}
98
+ print(result.most_frequent()) # '00' or '11'
99
+ ```
100
+
101
+ `Executor` is the single high-level entry point: pass any `Backend` (statevector,
102
+ noisy density matrix, MPS, tensor network, or a hardware provider) — or a
103
+ `NoiseModel` for built-in noisy simulation. Every `Backend` also exposes a direct
104
+ high-level `backend.run(circuit, shots=1024, seed=None)` call.
105
+
106
+ ### 2. The standardized result contract
107
+
108
+ ```python
109
+ from microquantum.analytics.result import Result
110
+
111
+ result = Result(
112
+ problem="optimization",
113
+ solution={"route": "A->C->B", "cost": 42.0},
114
+ confidence=0.91,
115
+ qubit_count=8,
116
+ runtime_ms=48.3,
117
+ baseline={"route": "A->B->C", "cost": 51.7},
118
+ )
119
+ print(result.to_json())
120
+ print(result.improved_over_baseline) # True
121
+ ```
122
+
123
+ ### 3. Running on real hardware
124
+
125
+ ```python
126
+ from microquantum import Executor, HardwareBackend, IBMQuantumCredentials, IBMQuantumProvider
127
+
128
+ provider = IBMQuantumProvider(IBMQuantumCredentials(api_token="..."))
129
+ backend = HardwareBackend(provider)
130
+
131
+ result = Executor(backend=backend).run(qc, shots=1024)
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Architecture Principles
137
+
138
+ 1. **Independent implementation** — all quantum operations are implemented from
139
+ scratch using NumPy. No dependence on Qiskit, Cirq, OpenQASM, Strawberry
140
+ Fields, or any other quantum SDK.
141
+ 2. **Layer separation** — each layer only depends on layers below it:
142
+ Analytics never touches raw matrices; domain adapters never bypass the core engine.
143
+
144
+ ```
145
+ Engine → Algorithms → Backends → Providers → NumPy
146
+ ```
147
+
148
+ 3. **Big-endian qubit ordering** — qubit 0 is the most significant bit; tensor
149
+ axis 0 = qubit 0. This matches the mathematical convention.
150
+ 4. **Standardized results** — every successful run funnels into a typed result
151
+ (`BackendResult`, `ExecutorResult`, `*Result`, `Result`) that can be
152
+ serialized with `to_dict()` / `to_json()`.
153
+ 5. **Test-driven** — a full test suite ships with the SDK and runs in CI.
154
+
155
+ ---
156
+
157
+ ## Project Structure
158
+
159
+ ```
160
+ microquantum/
161
+ ├── src/microquantum/
162
+ │ ├── core/ # Quantum engine, circuits, operators, transpiler
163
+ │ ├── algorithms/ # 23+ quantum algorithms
164
+ │ ├── experiments/ # Execution records, sweeps, experiments (MQ-07)
165
+ │ ├── analysis/ # Sampling / expectation / state analysis (MQ-07)
166
+ │ ├── backends/ # Simulators, noise, tensor networks, Executor
167
+ │ ├── providers/ # IBM Quantum & IonQ hardware clients (REST)
168
+ │ ├── analytics/ # CSV loading, result contract, analytics base
169
+ │ ├── optimization/ # QUBO / Ising toolchain
170
+ │ ├── qml/ # Quantum machine learning
171
+ │ ├── qec/ # Error correction codes
172
+ │ ├── benchmarks/ # Quantum benchmarking suite
173
+ │ ├── chemistry/ # Molecular Hamiltonians and ansätze
174
+ │ ├── mitigation/ # Error mitigation (ZNE, PEC, MEM)
175
+ │ └── optimizers/ # Classical optimizers
176
+ ├── examples/ # Runnable demo scripts
177
+ ├── docs/ # Sphinx documentation
178
+ └── pyproject.toml # Package configuration
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Development
184
+
185
+ ```bash
186
+ # Install dev tooling (pytest, coverage, mypy, ruff, sphinx)
187
+ uv sync --group dev
188
+
189
+ # Run the test suite (with coverage report)
190
+ uv run pytest tests/
191
+
192
+ # Type check (0 errors expected)
193
+ uv run mypy src/microquantum/ --ignore-missing-imports
194
+
195
+ # Lint / format
196
+ uv run ruff check src tests examples
197
+
198
+ # Build the docs
199
+ uv run sphinx-build docs docs/_build/html
200
+ ```
201
+
202
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the contribution workflow and
203
+ [CHANGELOG.md](CHANGELOG.md) for release history.
204
+
205
+ ---
206
+
207
+ ## Roadmap
208
+
209
+ - **v0.4.0** (current) — Developer Preview (see `docs/releases/developer-preview.rst`):
210
+ complete warning-free documentation with auto-generated API reference,
211
+ GitHub Pages deployment, and a consolidated CI/packaging pipeline.
212
+ - **v0.3.0** — public open-source release: unified `Backend.run()`,
213
+ serializable results (`to_dict()`), SPDX/legacy metadata cleanup, coverage +
214
+ ruff gates, SDK-only docs.
215
+ - **Next** — automated PyPI release workflow on version tags, stricter mypy
216
+ coverage, more hardware providers and tutorials.
217
+
218
+ ---
219
+
220
+ ## License
221
+
222
+ MIT — see [LICENSE](LICENSE). Built as an independent, dependency-light quantum
223
+ computing SDK: use it, fork it, build on it.
@@ -0,0 +1,134 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "microquantum"
7
+ dynamic = ["version"]
8
+ description = "A lightweight, NumPy-only quantum computing SDK foundation: circuits, problems, algorithms, a pluggable execution runtime, backends, experiments and analysis."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ {name = "Ajit Kumar"},
14
+ ]
15
+ keywords = [
16
+ "quantum",
17
+ "quantum-computing",
18
+ "quantum-circuit",
19
+ "simulator",
20
+ "qiskit-alternative",
21
+ "vqe",
22
+ "qaoa",
23
+ "grover",
24
+ "shor",
25
+ "qml",
26
+ "qec",
27
+ "qubo",
28
+ "optimization",
29
+ "sdk",
30
+ ]
31
+ classifiers = [
32
+ "Development Status :: 3 - Alpha",
33
+ "Intended Audience :: Developers",
34
+ "Intended Audience :: Science/Research",
35
+ "Operating System :: OS Independent",
36
+ "Programming Language :: Python :: 3",
37
+ "Programming Language :: Python :: 3.10",
38
+ "Programming Language :: Python :: 3.11",
39
+ "Programming Language :: Python :: 3.12",
40
+ "Programming Language :: Python :: 3.13",
41
+ "Topic :: Scientific/Engineering :: Chemistry",
42
+ "Topic :: Scientific/Engineering :: Mathematics",
43
+ "Topic :: Scientific/Engineering :: Physics",
44
+ "Topic :: Software Development :: Libraries :: Python Modules",
45
+ ]
46
+ dependencies = [
47
+ "numpy>=1.20.0",
48
+ ]
49
+
50
+ [project.optional-dependencies]
51
+ docs = [
52
+ "sphinx>=8.1.3",
53
+ "sphinx-autoapi>=3.8.0",
54
+ "furo>=2024.8.6",
55
+ ]
56
+ gpu = [
57
+ "cupy-cuda12x>=12.0",
58
+ ]
59
+ all = [
60
+ "cupy-cuda12x>=12.0",
61
+ "sphinx>=8.1.3",
62
+ "sphinx-autoapi>=3.8.0",
63
+ "furo>=2024.8.6",
64
+ ]
65
+
66
+ [project.urls]
67
+ Homepage = "https://github.com/ajit-ai/microquantum"
68
+ Repository = "https://github.com/ajit-ai/microquantum"
69
+ Documentation = "https://ajit-ai.github.io/microquantum/"
70
+ Issues = "https://github.com/ajit-ai/microquantum/issues"
71
+ Changelog = "https://github.com/ajit-ai/microquantum/blob/main/CHANGELOG.md"
72
+
73
+ [tool.setuptools.packages.find]
74
+ where = ["src"]
75
+
76
+ [tool.setuptools]
77
+ include-package-data = false
78
+
79
+ [tool.setuptools.dynamic]
80
+ version = {attr = "microquantum.__version__"}
81
+
82
+ [tool.pytest.ini_options]
83
+ testpaths = ["tests"]
84
+ addopts = "--cov=microquantum --cov-report=term-missing"
85
+
86
+ [tool.coverage.run]
87
+ source = ["microquantum"]
88
+
89
+ [tool.coverage.report]
90
+ show_missing = true
91
+ skip_covered = true
92
+ exclude_lines = [
93
+ "pragma: no cover",
94
+ "if TYPE_CHECKING:",
95
+ "raise NotImplementedError",
96
+ ]
97
+
98
+ [tool.mypy]
99
+ python_version = "3.12"
100
+ warn_return_any = true
101
+ warn_unused_configs = true
102
+ warn_redundant_casts = true
103
+ check_untyped_defs = true
104
+ disallow_incomplete_defs = true
105
+ no_implicit_optional = true
106
+ strict_equality = true
107
+ ignore_missing_imports = true
108
+
109
+ [[tool.mypy.overrides]]
110
+ module = ["microquantum.core.circuit", "microquantum.core.gradient"]
111
+ disable_error_code = ["assignment", "arg-type", "misc", "union-attr", "index"]
112
+
113
+ [tool.ruff]
114
+ line-length = 100
115
+ target-version = "py310"
116
+
117
+ [tool.ruff.lint]
118
+ select = ["E", "F", "I", "B", "SIM"]
119
+ ignore = ["E501"]
120
+
121
+ [tool.ruff.format]
122
+ quote-style = "double"
123
+ indent-style = "space"
124
+
125
+ [dependency-groups]
126
+ dev = [
127
+ "pytest>=8.3.5",
128
+ "pytest-cov>=6.0",
129
+ "mypy>=1.0",
130
+ "ruff>=0.9",
131
+ "sphinx>=8.1.3",
132
+ "sphinx-autoapi>=3.8.0",
133
+ "furo>=2024.8.6",
134
+ ]
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+