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.
- {microquantum-0.1.2 → microquantum-0.4.0}/LICENSE +20 -30
- microquantum-0.4.0/PKG-INFO +265 -0
- microquantum-0.4.0/README.md +223 -0
- microquantum-0.4.0/pyproject.toml +134 -0
- {microquantum-0.1.2 → microquantum-0.4.0}/setup.cfg +4 -4
- microquantum-0.4.0/src/microquantum/__init__.py +508 -0
- microquantum-0.4.0/src/microquantum/_json.py +84 -0
- microquantum-0.4.0/src/microquantum/adapters/__init__.py +16 -0
- microquantum-0.4.0/src/microquantum/adapters/base.py +324 -0
- microquantum-0.4.0/src/microquantum/adapters/caching.py +189 -0
- microquantum-0.4.0/src/microquantum/algorithms/__init__.py +61 -0
- microquantum-0.4.0/src/microquantum/algorithms/adapt_vqe.py +417 -0
- microquantum-0.4.0/src/microquantum/algorithms/amplitude_estimation.py +353 -0
- microquantum-0.4.0/src/microquantum/algorithms/base.py +143 -0
- microquantum-0.4.0/src/microquantum/algorithms/bernstein_vazirani.py +159 -0
- microquantum-0.4.0/src/microquantum/algorithms/deutsch_jozsa.py +146 -0
- microquantum-0.4.0/src/microquantum/algorithms/grover.py +345 -0
- microquantum-0.4.0/src/microquantum/algorithms/hamiltonian_simulation.py +332 -0
- microquantum-0.4.0/src/microquantum/algorithms/hhl.py +329 -0
- microquantum-0.4.0/src/microquantum/algorithms/phase_estimation.py +338 -0
- microquantum-0.4.0/src/microquantum/algorithms/qaoa.py +384 -0
- microquantum-0.4.0/src/microquantum/algorithms/qft.py +102 -0
- microquantum-0.4.0/src/microquantum/algorithms/quantum_walk.py +417 -0
- microquantum-0.4.0/src/microquantum/algorithms/shor.py +349 -0
- microquantum-0.4.0/src/microquantum/algorithms/simulation_enhanced.py +232 -0
- microquantum-0.4.0/src/microquantum/algorithms/vqd.py +193 -0
- microquantum-0.4.0/src/microquantum/algorithms/vqe.py +295 -0
- microquantum-0.4.0/src/microquantum/analysis/__init__.py +52 -0
- microquantum-0.4.0/src/microquantum/analysis/aggregation.py +241 -0
- microquantum-0.4.0/src/microquantum/analysis/expectation.py +233 -0
- microquantum-0.4.0/src/microquantum/analysis/sampling.py +267 -0
- microquantum-0.4.0/src/microquantum/analysis/state.py +273 -0
- microquantum-0.4.0/src/microquantum/analysis/statistics.py +171 -0
- microquantum-0.4.0/src/microquantum/analytics/__init__.py +42 -0
- microquantum-0.4.0/src/microquantum/analytics/base.py +130 -0
- microquantum-0.4.0/src/microquantum/analytics/csv_loader.py +120 -0
- microquantum-0.4.0/src/microquantum/analytics/result.py +182 -0
- microquantum-0.4.0/src/microquantum/analytics/visualization.py +316 -0
- microquantum-0.4.0/src/microquantum/backends/__init__.py +84 -0
- microquantum-0.4.0/src/microquantum/backends/adapter.py +82 -0
- microquantum-0.4.0/src/microquantum/backends/array_backend.py +232 -0
- microquantum-0.4.0/src/microquantum/backends/base.py +588 -0
- microquantum-0.4.0/src/microquantum/backends/capabilities.py +297 -0
- microquantum-0.4.0/src/microquantum/backends/density_matrix.py +118 -0
- microquantum-0.4.0/src/microquantum/backends/executor.py +438 -0
- microquantum-0.4.0/src/microquantum/backends/local.py +60 -0
- microquantum-0.4.0/src/microquantum/backends/mock.py +130 -0
- microquantum-0.4.0/src/microquantum/backends/mps.py +484 -0
- microquantum-0.4.0/src/microquantum/backends/noise.py +437 -0
- microquantum-0.4.0/src/microquantum/backends/provider.py +114 -0
- microquantum-0.4.0/src/microquantum/backends/registry.py +223 -0
- microquantum-0.4.0/src/microquantum/backends/statevector.py +74 -0
- microquantum-0.4.0/src/microquantum/backends/tensor_network.py +493 -0
- microquantum-0.4.0/src/microquantum/benchmarks/__init__.py +39 -0
- microquantum-0.4.0/src/microquantum/benchmarks/clops.py +113 -0
- microquantum-0.4.0/src/microquantum/benchmarks/cycle_benchmarking.py +341 -0
- microquantum-0.4.0/src/microquantum/benchmarks/gate_set_tomography.py +185 -0
- microquantum-0.4.0/src/microquantum/benchmarks/quantum_volume.py +213 -0
- microquantum-0.4.0/src/microquantum/benchmarks/randomized_benchmarking.py +314 -0
- microquantum-0.4.0/src/microquantum/benchmarks/xeb.py +194 -0
- microquantum-0.4.0/src/microquantum/chemistry/__init__.py +15 -0
- microquantum-0.4.0/src/microquantum/chemistry/ansatz.py +252 -0
- microquantum-0.4.0/src/microquantum/chemistry/hamiltonians.py +154 -0
- microquantum-0.4.0/src/microquantum/core/__init__.py +76 -0
- microquantum-0.4.0/src/microquantum/core/circuit.py +764 -0
- microquantum-0.4.0/src/microquantum/core/coupling.py +276 -0
- microquantum-0.4.0/src/microquantum/core/density_matrix.py +228 -0
- microquantum-0.4.0/src/microquantum/core/device.py +168 -0
- microquantum-0.4.0/src/microquantum/core/dynamic.py +651 -0
- microquantum-0.4.0/src/microquantum/core/engine.py +111 -0
- microquantum-0.4.0/src/microquantum/core/gradient.py +196 -0
- microquantum-0.4.0/src/microquantum/core/measurement.py +308 -0
- microquantum-0.4.0/src/microquantum/core/operators.py +318 -0
- microquantum-0.4.0/src/microquantum/core/optimization.py +220 -0
- microquantum-0.4.0/src/microquantum/core/parameter.py +159 -0
- microquantum-0.4.0/src/microquantum/core/pauli.py +360 -0
- microquantum-0.4.0/src/microquantum/core/qasm.py +247 -0
- microquantum-0.4.0/src/microquantum/core/registers.py +143 -0
- microquantum-0.4.0/src/microquantum/core/resources.py +163 -0
- microquantum-0.4.0/src/microquantum/core/serialization.py +176 -0
- microquantum-0.4.0/src/microquantum/core/state.py +166 -0
- microquantum-0.4.0/src/microquantum/core/tensor.py +133 -0
- microquantum-0.4.0/src/microquantum/core/transpiler.py +1015 -0
- microquantum-0.4.0/src/microquantum/core/visualization.py +226 -0
- microquantum-0.4.0/src/microquantum/experiments/__init__.py +39 -0
- microquantum-0.4.0/src/microquantum/experiments/experiment.py +532 -0
- microquantum-0.4.0/src/microquantum/experiments/record.py +509 -0
- microquantum-0.4.0/src/microquantum/experiments/sweep.py +283 -0
- microquantum-0.4.0/src/microquantum/ir/__init__.py +79 -0
- microquantum-0.4.0/src/microquantum/ir/builder.py +234 -0
- microquantum-0.4.0/src/microquantum/ir/circuit_ir.py +247 -0
- microquantum-0.4.0/src/microquantum/ir/compiler.py +224 -0
- microquantum-0.4.0/src/microquantum/ir/nodes.py +302 -0
- microquantum-0.4.0/src/microquantum/ir/passes.py +413 -0
- microquantum-0.4.0/src/microquantum/ir/validation.py +143 -0
- microquantum-0.4.0/src/microquantum/mitigation/__init__.py +21 -0
- microquantum-0.4.0/src/microquantum/mitigation/mem.py +198 -0
- microquantum-0.4.0/src/microquantum/mitigation/pec.py +125 -0
- microquantum-0.4.0/src/microquantum/mitigation/zne.py +243 -0
- microquantum-0.4.0/src/microquantum/optimization/__init__.py +7 -0
- microquantum-0.4.0/src/microquantum/optimization/qubo.py +338 -0
- microquantum-0.4.0/src/microquantum/optimizers/__init__.py +25 -0
- microquantum-0.4.0/src/microquantum/optimizers/base.py +99 -0
- microquantum-0.4.0/src/microquantum/optimizers/gradient_descent.py +123 -0
- microquantum-0.4.0/src/microquantum/optimizers/gradient_free.py +252 -0
- microquantum-0.4.0/src/microquantum/optimizers/quasi_newton.py +258 -0
- microquantum-0.4.0/src/microquantum/optimizers/spsa.py +240 -0
- microquantum-0.4.0/src/microquantum/problems/__init__.py +34 -0
- microquantum-0.4.0/src/microquantum/problems/base.py +121 -0
- microquantum-0.4.0/src/microquantum/problems/eigenvalue.py +199 -0
- microquantum-0.4.0/src/microquantum/problems/optimization.py +244 -0
- microquantum-0.4.0/src/microquantum/problems/search.py +123 -0
- microquantum-0.4.0/src/microquantum/providers/__init__.py +30 -0
- microquantum-0.4.0/src/microquantum/providers/backend.py +172 -0
- microquantum-0.4.0/src/microquantum/providers/base.py +163 -0
- microquantum-0.4.0/src/microquantum/providers/http.py +79 -0
- microquantum-0.4.0/src/microquantum/providers/ibm.py +178 -0
- microquantum-0.4.0/src/microquantum/providers/ionq.py +154 -0
- microquantum-0.4.0/src/microquantum/providers/serializer.py +172 -0
- microquantum-0.4.0/src/microquantum/py.typed +0 -0
- microquantum-0.4.0/src/microquantum/qec/__init__.py +21 -0
- microquantum-0.4.0/src/microquantum/qec/repetition.py +296 -0
- microquantum-0.4.0/src/microquantum/qec/shor.py +226 -0
- microquantum-0.4.0/src/microquantum/qml/__init__.py +29 -0
- microquantum-0.4.0/src/microquantum/qml/classifier.py +279 -0
- microquantum-0.4.0/src/microquantum/qml/encoding.py +286 -0
- microquantum-0.4.0/src/microquantum/qml/kernels.py +176 -0
- microquantum-0.4.0/src/microquantum/runtime/__init__.py +229 -0
- microquantum-0.4.0/src/microquantum/runtime/plan.py +268 -0
- microquantum-0.4.0/src/microquantum/runtime/runtime.py +970 -0
- microquantum-0.4.0/src/microquantum/runtime/strategy.py +80 -0
- microquantum-0.4.0/src/microquantum/runtime/trace.py +103 -0
- microquantum-0.4.0/src/microquantum.egg-info/PKG-INFO +265 -0
- microquantum-0.4.0/src/microquantum.egg-info/SOURCES.txt +199 -0
- microquantum-0.4.0/src/microquantum.egg-info/requires.txt +15 -0
- microquantum-0.4.0/tests/test_adapt_vqe.py +72 -0
- microquantum-0.4.0/tests/test_adapter_framework.py +310 -0
- microquantum-0.4.0/tests/test_advanced_noise.py +195 -0
- microquantum-0.4.0/tests/test_algorithm_analysis_integration.py +216 -0
- microquantum-0.4.0/tests/test_algorithm_layer.py +171 -0
- microquantum-0.4.0/tests/test_amplitude_estimation.py +66 -0
- microquantum-0.4.0/tests/test_analysis_layer.py +342 -0
- microquantum-0.4.0/tests/test_backend_provider.py +589 -0
- microquantum-0.4.0/tests/test_backends.py +129 -0
- microquantum-0.4.0/tests/test_benchmarks.py +93 -0
- microquantum-0.4.0/tests/test_bernstein_vazirani.py +63 -0
- microquantum-0.4.0/tests/test_chemistry.py +134 -0
- microquantum-0.4.0/tests/test_circuit.py +396 -0
- microquantum-0.4.0/tests/test_circuit_engine_integration.py +142 -0
- microquantum-0.4.0/tests/test_circuit_io.py +132 -0
- microquantum-0.4.0/tests/test_coupling.py +171 -0
- microquantum-0.4.0/tests/test_cycle_benchmarking.py +187 -0
- microquantum-0.4.0/tests/test_density_matrix.py +189 -0
- microquantum-0.4.0/tests/test_density_matrix_backend.py +103 -0
- microquantum-0.4.0/tests/test_deutsch_jozsa.py +52 -0
- microquantum-0.4.0/tests/test_engine.py +298 -0
- microquantum-0.4.0/tests/test_experiment_layer.py +435 -0
- microquantum-0.4.0/tests/test_gate_set_tomography.py +61 -0
- microquantum-0.4.0/tests/test_gradient.py +215 -0
- microquantum-0.4.0/tests/test_gradient_free_optimizers.py +140 -0
- microquantum-0.4.0/tests/test_grover.py +144 -0
- microquantum-0.4.0/tests/test_hamiltonian_simulation.py +107 -0
- microquantum-0.4.0/tests/test_hhl.py +126 -0
- microquantum-0.4.0/tests/test_ir.py +528 -0
- microquantum-0.4.0/tests/test_measurement.py +282 -0
- microquantum-0.4.0/tests/test_mitigation.py +154 -0
- microquantum-0.4.0/tests/test_new_modules.py +243 -0
- microquantum-0.4.0/tests/test_noise.py +138 -0
- microquantum-0.4.0/tests/test_operators.py +402 -0
- microquantum-0.4.0/tests/test_optimization.py +318 -0
- microquantum-0.4.0/tests/test_optimizer_bfgs.py +92 -0
- microquantum-0.4.0/tests/test_parameter.py +277 -0
- microquantum-0.4.0/tests/test_pauli.py +406 -0
- microquantum-0.4.0/tests/test_phase12_analytics.py +226 -0
- microquantum-0.4.0/tests/test_phase13.py +312 -0
- microquantum-0.4.0/tests/test_phase14.py +362 -0
- microquantum-0.4.0/tests/test_phase15.py +341 -0
- microquantum-0.4.0/tests/test_problems.py +208 -0
- microquantum-0.4.0/tests/test_public_contracts.py +311 -0
- microquantum-0.4.0/tests/test_qaoa.py +171 -0
- microquantum-0.4.0/tests/test_qasm_viz_serial.py +400 -0
- microquantum-0.4.0/tests/test_qec.py +183 -0
- microquantum-0.4.0/tests/test_qml.py +262 -0
- microquantum-0.4.0/tests/test_quantum_walk.py +106 -0
- microquantum-0.4.0/tests/test_randomized_benchmarking.py +69 -0
- microquantum-0.4.0/tests/test_registers.py +150 -0
- microquantum-0.4.0/tests/test_runtime.py +644 -0
- microquantum-0.4.0/tests/test_runtime_integration.py +112 -0
- microquantum-0.4.0/tests/test_shor.py +65 -0
- microquantum-0.4.0/tests/test_simulation_enhanced.py +141 -0
- microquantum-0.4.0/tests/test_spsa.py +124 -0
- microquantum-0.4.0/tests/test_state.py +259 -0
- microquantum-0.4.0/tests/test_statevector_backend.py +102 -0
- microquantum-0.4.0/tests/test_structural.py +429 -0
- microquantum-0.4.0/tests/test_tensor.py +240 -0
- microquantum-0.4.0/tests/test_transpiler.py +158 -0
- microquantum-0.4.0/tests/test_vqd.py +120 -0
- microquantum-0.4.0/tests/test_vqe.py +222 -0
- microquantum-0.4.0/tests/test_xeb.py +61 -0
- microquantum-0.1.2/PKG-INFO +0 -40
- microquantum-0.1.2/README.md +0 -30
- microquantum-0.1.2/pyproject.toml +0 -14
- microquantum-0.1.2/src/microquantum/__init__.py +0 -3
- microquantum-0.1.2/src/microquantum/simulator.py +0 -56
- microquantum-0.1.2/src/microquantum.egg-info/PKG-INFO +0 -40
- microquantum-0.1.2/src/microquantum.egg-info/SOURCES.txt +0 -10
- microquantum-0.1.2/src/microquantum.egg-info/requires.txt +0 -1
- {microquantum-0.1.2 → microquantum-0.4.0}/src/microquantum.egg-info/dependency_links.txt +0 -0
- {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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
+
[](https://github.com/ajit-ai/microquantum/actions)
|
|
48
|
+
[](https://ajit-ai.github.io/microquantum/)
|
|
49
|
+
[](https://pypi.org/project/microquantum/)
|
|
50
|
+
[](https://pypi.org/project/microquantum/)
|
|
51
|
+
[](https://pypi.org/project/microquantum/)
|
|
52
|
+
[](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
|
+
[](https://github.com/ajit-ai/microquantum/actions)
|
|
6
|
+
[](https://ajit-ai.github.io/microquantum/)
|
|
7
|
+
[](https://pypi.org/project/microquantum/)
|
|
8
|
+
[](https://pypi.org/project/microquantum/)
|
|
9
|
+
[](https://pypi.org/project/microquantum/)
|
|
10
|
+
[](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
|
+
|