qumat 0.0.1__tar.gz → 0.5.0rc1__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.
- qumat-0.5.0rc1/.asf.yaml +36 -0
- qumat-0.5.0rc1/.claude/settings.local.json +108 -0
- qumat-0.5.0rc1/.devcontainer/devcontainer.json +29 -0
- qumat-0.5.0rc1/.devcontainer/setup.sh +26 -0
- qumat-0.5.0rc1/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
- qumat-0.5.0rc1/.github/ISSUE_TEMPLATE/documentation_issue.md +19 -0
- qumat-0.5.0rc1/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- qumat-0.5.0rc1/.github/ISSUE_TEMPLATE/issue_template.md +32 -0
- qumat-0.5.0rc1/.github/PULL_REQUEST_TEMPLATE +33 -0
- qumat-0.5.0rc1/.github/labeler.yml +13 -0
- qumat-0.5.0rc1/.github/scripts/checks/__init__.py +16 -0
- qumat-0.5.0rc1/.github/scripts/checks/general_review.py +124 -0
- qumat-0.5.0rc1/.github/scripts/review_pr.py +55 -0
- qumat-0.5.0rc1/.github/workflows/label.yml +15 -0
- qumat-0.5.0rc1/.github/workflows/notebook-testing.yml +44 -0
- qumat-0.5.0rc1/.github/workflows/pr_review.yml +47 -0
- qumat-0.5.0rc1/.github/workflows/pre-commit.yml +47 -0
- qumat-0.5.0rc1/.github/workflows/python-build.yml +61 -0
- qumat-0.5.0rc1/.github/workflows/python-testing.yml +56 -0
- qumat-0.5.0rc1/.gitignore +54 -0
- qumat-0.5.0rc1/.pre-commit-config.yaml +82 -0
- qumat-0.5.0rc1/CONTRIBUTING.md +155 -0
- qumat-0.5.0rc1/KEYS +1059 -0
- {qumat-0.0.1 → qumat-0.5.0rc1}/LICENSE +0 -112
- qumat-0.5.0rc1/Makefile +43 -0
- qumat-0.5.0rc1/NOTICE +7 -0
- qumat-0.5.0rc1/PKG-INFO +111 -0
- qumat-0.5.0rc1/README.md +93 -0
- qumat-0.5.0rc1/dev/release.md +126 -0
- qumat-0.5.0rc1/doap_Mahout.rdf +51 -0
- qumat-0.5.0rc1/docs/about/how-to-contribute.md +152 -0
- qumat-0.5.0rc1/docs/adr/001-jekyll-to-docusaurus-migration.md +153 -0
- qumat-0.5.0rc1/docs/adr/DOCUSAURUS_MIGRATION_PLAN.md +492 -0
- qumat-0.5.0rc1/docs/api.md +157 -0
- qumat-0.5.0rc1/docs/assets/mascot.png +0 -0
- qumat-0.5.0rc1/docs/assets/mascot_with_text.png +0 -0
- qumat-0.5.0rc1/docs/basic-gates.md +99 -0
- qumat-0.5.0rc1/docs/blog/2017-12-20-new-website.md +13 -0
- qumat-0.5.0rc1/docs/blog/2018-06-18-preping-014.md +27 -0
- qumat-0.5.0rc1/docs/blog/2019-12-14-version-14-1.md +20 -0
- qumat-0.5.0rc1/docs/blog/2020-10-18-version-14-1-released.md +12 -0
- qumat-0.5.0rc1/docs/blog/2020-10-30-weekly-meeting-minutes.md +26 -0
- qumat-0.5.0rc1/docs/blog/2020-11-13-weekly-meeting-minutes.md +27 -0
- qumat-0.5.0rc1/docs/blog/2020-11-20-weekly-meeting-minutes.md +12 -0
- qumat-0.5.0rc1/docs/blog/2020-11-6-weekly-meeting-minutes.md +30 -0
- qumat-0.5.0rc1/docs/blog/2020-12-15-weekly-meeting-minutes.md +9 -0
- qumat-0.5.0rc1/docs/blog/2020-12-8-weekly-meeting-minutes.md +19 -0
- qumat-0.5.0rc1/docs/blog/2021-01-05-weekly-meeting-minutes.md +16 -0
- qumat-0.5.0rc1/docs/blog/2021-02-02-weekly-meeting-minutes.md +17 -0
- qumat-0.5.0rc1/docs/blog/2021-06-01-Zeppelin Quickstart.md +25 -0
- qumat-0.5.0rc1/docs/blog/2023-02-22-Meeting-Minutes.md +48 -0
- qumat-0.5.0rc1/docs/blog/2023-03-29-Meeting-Minutes.md +58 -0
- qumat-0.5.0rc1/docs/blog/2023-07-26-Meeting-Minutes.md +55 -0
- qumat-0.5.0rc1/docs/blog/2023-08-30-Meeting-Minutes.md +56 -0
- qumat-0.5.0rc1/docs/blog/2023-09-27-Meeting-Minutes.md +54 -0
- qumat-0.5.0rc1/docs/blog/2023-10-25-Meeting-Minutes.md +52 -0
- qumat-0.5.0rc1/docs/blog/2023-11-29-Meeting-Minutes.md +42 -0
- qumat-0.5.0rc1/docs/blog/2024-01-31-Meeting-Minutes.md +34 -0
- qumat-0.5.0rc1/docs/blog/2024-02-14-Meeting-Minutes.md +31 -0
- qumat-0.5.0rc1/docs/blog/2024-03-07-Meeting-Minutes.md +37 -0
- qumat-0.5.0rc1/docs/blog/2024-03-13-Meeting-Minutes.md +29 -0
- qumat-0.5.0rc1/docs/blog/2024-03-20-Meeting-Minutes.md +30 -0
- qumat-0.5.0rc1/docs/blog/2024-03-27-Meeting-Minutes.md +34 -0
- qumat-0.5.0rc1/docs/blog/2024-04-03-Meeting-Minutes.md +43 -0
- qumat-0.5.0rc1/docs/blog/2024-04-17-Meeting-Minutes.md +36 -0
- qumat-0.5.0rc1/docs/blog/2024-04-24-Meeting-Minutes.md +20 -0
- qumat-0.5.0rc1/docs/blog/2024-05-08-Meeting-Minutes.md +39 -0
- qumat-0.5.0rc1/docs/blog/2024-07-17-Meeting-Minutes.md +38 -0
- qumat-0.5.0rc1/docs/blog/2024-07-24-Meeting-Minutes.md +42 -0
- qumat-0.5.0rc1/docs/blog/2024-08-02-Meeting-Minutes.md +44 -0
- qumat-0.5.0rc1/docs/blog/2024-08-09-Meeting-Minutes.md +38 -0
- qumat-0.5.0rc1/docs/blog/2024-08-30-Meeting-Minutes.md +46 -0
- qumat-0.5.0rc1/docs/blog/2024-09-20-Meeting-Minutes.md +43 -0
- qumat-0.5.0rc1/docs/blog/2024-09-27-Meeting-Minutes.md +41 -0
- qumat-0.5.0rc1/docs/blog/2024-10-04-Meeting-Minutes.md +52 -0
- qumat-0.5.0rc1/docs/blog/2024-11-01-Meeting-Minutes.md +47 -0
- qumat-0.5.0rc1/docs/blog/2024-11-15-Meeting-Minutes.md +40 -0
- qumat-0.5.0rc1/docs/blog/2024-12-06-Meeting-Minutes.md +40 -0
- qumat-0.5.0rc1/docs/blog/2025-01-24-FOSDEM-Talk.md +15 -0
- qumat-0.5.0rc1/docs/blog/2025-01-24-Meeting-Minutes.md +42 -0
- qumat-0.5.0rc1/docs/blog/2025-02-14-Meeting-Minutes.md +44 -0
- qumat-0.5.0rc1/docs/blog/2025-03-13-Meeting-Minutes.md +47 -0
- qumat-0.5.0rc1/docs/blog/2025-03-21-Meeting-Minutes.md +8 -0
- qumat-0.5.0rc1/docs/blog/2025-04-11-Meeting-Minutes.md +8 -0
- qumat-0.5.0rc1/docs/blog/2025-04-17-Qumat-0.4-Release.md +8 -0
- qumat-0.5.0rc1/docs/blog/2025-05-16-Meeting-Minutes.md +8 -0
- qumat-0.5.0rc1/docs/blog/2025-08-01-Meeting-Minutes.md +24 -0
- qumat-0.5.0rc1/docs/blog/2025-10-24-Meeting-Minutes.md +23 -0
- qumat-0.5.0rc1/docs/blog/authors.yml +6 -0
- qumat-0.5.0rc1/docs/community/code-of-conduct.md +51 -0
- qumat-0.5.0rc1/docs/community/index.md +97 -0
- qumat-0.5.0rc1/docs/community/mailing-lists.md +71 -0
- qumat-0.5.0rc1/docs/community/who-we-are.md +66 -0
- qumat-0.5.0rc1/docs/download/index.md +42 -0
- qumat-0.5.0rc1/docs/download/quickstart.md +58 -0
- qumat-0.5.0rc1/docs/getting-started-with-qumat.md +54 -0
- qumat-0.5.0rc1/docs/index.md +32 -0
- qumat-0.5.0rc1/docs/parameterized-circuits.md +217 -0
- qumat-0.5.0rc1/docs/pqc.md +283 -0
- qumat-0.5.0rc1/docs/qdp/observability.md +148 -0
- qumat-0.5.0rc1/docs/qdp/readers.md +222 -0
- qumat-0.5.0rc1/docs/qdp/testing.md +54 -0
- qumat-0.5.0rc1/docs/qumat/core/api.md +8 -0
- qumat-0.5.0rc1/docs/qumat/core/concepts.md +8 -0
- qumat-0.5.0rc1/docs/qumat/core/examples.md +8 -0
- qumat-0.5.0rc1/docs/qumat/core/getting-started.md +8 -0
- qumat-0.5.0rc1/docs/qumat/core/index.md +14 -0
- qumat-0.5.0rc1/docs/qumat/index.md +21 -0
- qumat-0.5.0rc1/docs/qumat/papers/An-Efficient-Quantum-Factoring-Algorithm.md +37 -0
- qumat-0.5.0rc1/docs/qumat/papers/Quantum-Kernel-Estimation-With-Neutral-Atoms-For-Supervised-Classification.md +43 -0
- qumat-0.5.0rc1/docs/qumat/papers/Quantum-machine-learning-beyond-kernel-methods.md +28 -0
- qumat-0.5.0rc1/docs/qumat/papers/Unleashing-the-Potential-of-LLMs-for-Quantum-Computing.md +49 -0
- qumat-0.5.0rc1/docs/qumat/papers/index.md +12 -0
- qumat-0.5.0rc1/docs/qumat/qdp/api.md +132 -0
- qumat-0.5.0rc1/docs/qumat/qdp/concepts.md +205 -0
- qumat-0.5.0rc1/docs/qumat/qdp/examples.md +8 -0
- qumat-0.5.0rc1/docs/qumat/qdp/getting-started.md +8 -0
- qumat-0.5.0rc1/docs/qumat/qdp/index.md +12 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/advanced-topics.md +110 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/applications.md +462 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/index.md +49 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/introduction.md +93 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/quantum-algorithms.md +138 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/quantum-circuits.md +126 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/quantum-entanglement.md +111 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/quantum-error-correction.md +81 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/quantum-gates.md +139 -0
- qumat-0.5.0rc1/docs/qumat/quantum-computing-primer/qubits.md +97 -0
- qumat-0.5.0rc1/docs/qumat-gap-analysis-for-pqc.md +194 -0
- qumat-0.5.0rc1/examples/Optimization_Example.ipynb +170 -0
- qumat-0.5.0rc1/examples/Simple_Example.ipynb +110 -0
- qumat-0.5.0rc1/examples/quantum_teleportation.py +79 -0
- qumat-0.5.0rc1/examples/simple_example.py +37 -0
- qumat-0.5.0rc1/pyproject.toml +56 -0
- qumat-0.5.0rc1/qdp/.claude/settings.local.json +33 -0
- qumat-0.5.0rc1/qdp/Cargo.lock +2246 -0
- qumat-0.5.0rc1/qdp/Cargo.toml +49 -0
- qumat-0.5.0rc1/qdp/DEVELOPMENT.md +208 -0
- qumat-0.5.0rc1/qdp/Makefile +39 -0
- qumat-0.5.0rc1/qdp/docs/observability/NVTX_USAGE.md +131 -0
- qumat-0.5.0rc1/qdp/docs/readers/README.md +222 -0
- qumat-0.5.0rc1/qdp/docs/test/README.md +54 -0
- qumat-0.5.0rc1/qdp/qdp-core/.gitignore +0 -0
- qumat-0.5.0rc1/qdp/qdp-core/Cargo.toml +33 -0
- qumat-0.5.0rc1/qdp/qdp-core/build.rs +36 -0
- qumat-0.5.0rc1/qdp/qdp-core/examples/dataloader_throughput.rs +145 -0
- qumat-0.5.0rc1/qdp/qdp-core/examples/nvtx_profile.rs +86 -0
- qumat-0.5.0rc1/qdp/qdp-core/proto/tensor.proto +32 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/dlpack.rs +188 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/encoding/amplitude.rs +132 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/encoding/angle.rs +125 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/encoding/basis.rs +178 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/encoding/mod.rs +377 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/error.rs +65 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/buffer_pool.rs +151 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/cuda_ffi.rs +50 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/encodings/amplitude.rs +477 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/encodings/angle.rs +313 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/encodings/basis.rs +289 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/encodings/iqp.rs +290 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/encodings/mod.rs +119 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/memory.rs +541 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/mod.rs +33 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/gpu/pipeline.rs +424 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/io.rs +302 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/lib.rs +576 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/platform/fallback.rs +36 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/platform/linux.rs +35 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/platform/mod.rs +31 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/platform/other.rs +28 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/platform/windows.rs +28 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/preprocessing.rs +162 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/profiling.rs +77 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/reader.rs +102 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/readers/arrow_ipc.rs +191 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/readers/mod.rs +39 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/readers/numpy.rs +274 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/readers/parquet.rs +566 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/readers/tensorflow.rs +268 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/readers/torch.rs +184 -0
- qumat-0.5.0rc1/qdp/qdp-core/src/tf_proto.rs +23 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/api_workflow.rs +369 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/arrow_ipc_io.rs +226 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/common/mod.rs +21 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/dlpack.rs +85 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/iqp_encoding.rs +660 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/memory_safety.rs +201 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/numpy.rs +143 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/parquet_io.rs +161 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/preprocessing.rs +153 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/tensorflow_io.rs +354 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/torch_io.rs +62 -0
- qumat-0.5.0rc1/qdp/qdp-core/tests/validation.rs +227 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/Cargo.toml +14 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/build.rs +104 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/src/amplitude.cu +680 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/src/angle.cu +155 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/src/basis.cu +166 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/src/iqp.cu +232 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/src/kernel_config.h +69 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/src/lib.rs +396 -0
- qumat-0.5.0rc1/qdp/qdp-kernels/tests/amplitude_encode.rs +739 -0
- qumat-0.5.0rc1/qdp/qdp-python/.gitignore +72 -0
- qumat-0.5.0rc1/qdp/qdp-python/Cargo.toml +18 -0
- qumat-0.5.0rc1/qdp/qdp-python/README.md +68 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/.claude/settings.local.json +15 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/README.md +114 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_e2e.py +559 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_latency.md +80 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_latency.py +350 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_latency_pytorch.py +198 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_numpy_io.py +313 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_throughput.md +77 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/benchmark_throughput.py +309 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/notebooks/mahout_benchmark.ipynb +177 -0
- qumat-0.5.0rc1/qdp/qdp-python/benchmark/utils.py +233 -0
- qumat-0.5.0rc1/qdp/qdp-python/pyproject.toml +40 -0
- qumat-0.5.0rc1/qdp/qdp-python/src/lib.rs +802 -0
- qumat-0.5.0rc1/qdp/qdp-python/uv.lock +2584 -0
- qumat-0.5.0rc1/qumat/__init__.py +20 -0
- {qumat-0.0.1 → qumat-0.5.0rc1}/qumat/amazon_braket_backend.py +95 -15
- {qumat-0.0.1 → qumat-0.5.0rc1}/qumat/cirq_backend.py +100 -16
- qumat-0.5.0rc1/qumat/qdp.py +63 -0
- qumat-0.5.0rc1/qumat/qiskit_backend.py +210 -0
- qumat-0.5.0rc1/qumat/qumat.py +564 -0
- qumat-0.5.0rc1/testing/README.md +78 -0
- qumat-0.5.0rc1/testing/__init__.py +16 -0
- qumat-0.5.0rc1/testing/conftest.py +104 -0
- qumat-0.5.0rc1/testing/qdp/__init__.py +16 -0
- qumat-0.5.0rc1/testing/qdp/qdp_test_utils.py +37 -0
- qumat-0.5.0rc1/testing/qdp/test_bindings.py +1082 -0
- qumat-0.5.0rc1/testing/qdp/test_high_fidelity.py +266 -0
- qumat-0.5.0rc1/testing/qdp/test_numpy.py +205 -0
- qumat-0.5.0rc1/testing/qumat/__init__.py +16 -0
- qumat-0.5.0rc1/testing/qumat/test_create_circuit.py +127 -0
- qumat-0.5.0rc1/testing/qumat/test_final_quantum_states.py +76 -0
- qumat-0.5.0rc1/testing/qumat/test_multi_qubit_gates.py +492 -0
- qumat-0.5.0rc1/testing/qumat/test_overlap_measurement.py +157 -0
- qumat-0.5.0rc1/testing/qumat/test_parameter_binding.py +222 -0
- qumat-0.5.0rc1/testing/qumat/test_rotation_gates.py +453 -0
- qumat-0.5.0rc1/testing/qumat/test_single_qubit_gates.py +798 -0
- qumat-0.5.0rc1/testing/qumat/test_swap_test.py +193 -0
- qumat-0.5.0rc1/testing/utils/.license-header.txt +15 -0
- qumat-0.5.0rc1/testing/utils/__init__.py +21 -0
- qumat-0.5.0rc1/testing/utils/amazon_braket_helpers.py +74 -0
- qumat-0.5.0rc1/testing/utils/cirq_helpers.py +64 -0
- qumat-0.5.0rc1/testing/utils/constants.py +21 -0
- qumat-0.5.0rc1/testing/utils/qiskit_helpers.py +77 -0
- qumat-0.5.0rc1/testing/utils/qumat_helpers.py +165 -0
- qumat-0.5.0rc1/uv.lock +2554 -0
- qumat-0.5.0rc1/website/.gitignore +20 -0
- qumat-0.5.0rc1/website/README.md +289 -0
- qumat-0.5.0rc1/website/docs/.gitignore +10 -0
- qumat-0.5.0rc1/website/docusaurus.config.ts +287 -0
- qumat-0.5.0rc1/website/package-lock.json +18683 -0
- qumat-0.5.0rc1/website/package.json +54 -0
- qumat-0.5.0rc1/website/scripts/migrate-posts.js +195 -0
- qumat-0.5.0rc1/website/scripts/migrate-website-docs.js +231 -0
- qumat-0.5.0rc1/website/scripts/sync-docs.js +275 -0
- qumat-0.5.0rc1/website/sidebars.ts +125 -0
- qumat-0.5.0rc1/website/src/components/WaveAnimation/index.tsx +161 -0
- qumat-0.5.0rc1/website/src/components/WaveAnimation/styles.module.css +7 -0
- qumat-0.5.0rc1/website/src/css/custom.css +172 -0
- qumat-0.5.0rc1/website/src/pages/index.module.css +226 -0
- qumat-0.5.0rc1/website/src/pages/index.tsx +177 -0
- qumat-0.5.0rc1/website/src/pages/markdown-page.md +7 -0
- qumat-0.5.0rc1/website/src/theme/Blog/Components/Author/index.tsx +126 -0
- qumat-0.5.0rc1/website/src/theme/Blog/Components/Author/styles.module.css +67 -0
- qumat-0.5.0rc1/website/static/.nojekyll +0 -0
- qumat-0.5.0rc1/website/static/img/asf_logo.svg +226 -0
- qumat-0.5.0rc1/website/static/img/asf_logo_white.svg +238 -0
- qumat-0.5.0rc1/website/static/img/asf_new_logo.svg +43 -0
- qumat-0.5.0rc1/website/static/img/mahout-favicon-black.svg +10 -0
- qumat-0.5.0rc1/website/static/img/mahout-favicon.svg +10 -0
- qumat-0.5.0rc1/website/static/img/mahout-icon-black.svg +40 -0
- qumat-0.5.0rc1/website/static/img/mahout-icon-white.svg +40 -0
- qumat-0.5.0rc1/website/static/img/mahout-logo-blue.svg +64 -0
- qumat-0.5.0rc1/website/static/img/mahout-logo-white.svg +64 -0
- qumat-0.5.0rc1/website/static/img/mahout-logo.svg +64 -0
- qumat-0.5.0rc1/website/static/img/mahout-social-card.svg +10 -0
- qumat-0.5.0rc1/website/static/img/mascot_with_text.png +0 -0
- qumat-0.5.0rc1/website/tsconfig.json +8 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/about/how-to-contribute.md +152 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/adr/001-jekyll-to-docusaurus-migration.md +153 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/api.md +160 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/assets/mascot.png +0 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/assets/mascot_with_text.png +0 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/basic-gates.md +99 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/community/code-of-conduct.md +51 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/community/index.md +97 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/community/mailing-lists.md +71 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/community/who-we-are.md +66 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/download/index.md +42 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/download/quickstart.md +58 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/getting-started-with-qumat.md +57 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/getting-started.md +3 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/index.md +32 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/parameterized-circuits.md +217 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/pqc.md +283 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qdp/observability.md +151 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qdp/readers.md +225 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qdp/testing.md +57 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/core/api.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/core/concepts.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/core/examples.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/core/getting-started.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/core/index.md +14 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/index.md +21 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/papers/An-Efficient-Quantum-Factoring-Algorithm.md +36 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/papers/Quantum-Kernel-Estimation-With-Neutral-Atoms-For-Supervised-Classification.md +42 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/papers/Quantum-machine-learning-beyond-kernel-methods.md +27 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/papers/Unleashing-the-Potential-of-LLMs-for-Quantum-Computing.md +48 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/papers/index.md +12 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/qdp/api.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/qdp/concepts.md +204 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/qdp/examples.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/qdp/getting-started.md +7 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/qdp/index.md +12 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/advanced-topics.md +109 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/applications.md +461 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/index.md +49 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/introduction.md +92 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/quantum-algorithms.md +137 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/quantum-circuits.md +125 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/quantum-entanglement.md +110 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/quantum-error-correction.md +80 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/quantum-gates.md +138 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat/quantum-computing-primer/qubits.md +96 -0
- qumat-0.5.0rc1/website/versioned_docs/version-0.4/qumat-gap-analysis-for-pqc.md +197 -0
- qumat-0.5.0rc1/website/versioned_sidebars/version-0.4-sidebars.json +8 -0
- qumat-0.5.0rc1/website/versions.json +3 -0
- qumat-0.0.1/NOTICE +0 -41
- qumat-0.0.1/PKG-INFO +0 -77
- qumat-0.0.1/README.md +0 -56
- qumat-0.0.1/pyproject.toml +0 -27
- qumat-0.0.1/qumat/qiskit_backend.py +0 -117
- qumat-0.0.1/qumat/qumat.py +0 -90
- /qumat-0.0.1/qumat/__init__.py → /qumat-0.5.0rc1/docs/getting-started.md +0 -0
qumat-0.5.0rc1/.asf.yaml
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
# or more contributor license agreements. See the NOTICE file
|
|
4
|
+
# distributed with this work for additional information
|
|
5
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
# to you under the Apache License, Version 2.0 (the
|
|
7
|
+
# "License"); you may not use this file except in compliance
|
|
8
|
+
# with the License. You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing,
|
|
13
|
+
# software distributed under the License is distributed on an
|
|
14
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
# KIND, either express or implied. See the License for the
|
|
16
|
+
# specific language governing permissions and limitations
|
|
17
|
+
# under the License.
|
|
18
|
+
|
|
19
|
+
# https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features
|
|
20
|
+
|
|
21
|
+
publish:
|
|
22
|
+
whoami: asf-site
|
|
23
|
+
|
|
24
|
+
notifications:
|
|
25
|
+
discussions: issues@mahout.apache.org
|
|
26
|
+
|
|
27
|
+
github:
|
|
28
|
+
features:
|
|
29
|
+
# Enable wiki for documentation
|
|
30
|
+
wiki: true
|
|
31
|
+
# Enable issue management
|
|
32
|
+
issues: true
|
|
33
|
+
# Enable projects for project management boards
|
|
34
|
+
projects: true
|
|
35
|
+
# Enable discussions
|
|
36
|
+
discussions: true
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(rustc:*)",
|
|
5
|
+
"Bash(cargo --version:*)",
|
|
6
|
+
"Bash(nvcc:*)",
|
|
7
|
+
"Bash(source ~/.zshrc)",
|
|
8
|
+
"Bash(export PATH=\"$HOME/.cargo/bin:$PATH\")",
|
|
9
|
+
"Bash(export CUDA_HOME=\"$HOME/local/cuda-12.2\")",
|
|
10
|
+
"Bash(export PATH=\"$CUDA_HOME/bin:$PATH\")",
|
|
11
|
+
"Bash(export LD_LIBRARY_PATH:*)",
|
|
12
|
+
"Bash(cargo build:*)",
|
|
13
|
+
"Bash(cargo test:*)",
|
|
14
|
+
"Bash(cargo doc:*)",
|
|
15
|
+
"Bash(gh api:*)",
|
|
16
|
+
"Bash(gh pr diff:*)",
|
|
17
|
+
"Bash(source .venv/bin/activate)",
|
|
18
|
+
"Bash(uv sync:*)",
|
|
19
|
+
"Bash(python:*)",
|
|
20
|
+
"Bash(nvidia-smi:*)",
|
|
21
|
+
"Bash(uv run maturin develop:*)",
|
|
22
|
+
"Bash(git fetch:*)",
|
|
23
|
+
"Bash(git checkout:*)",
|
|
24
|
+
"Bash(git pull:*)",
|
|
25
|
+
"Bash(git stash:*)",
|
|
26
|
+
"Bash(git reset:*)",
|
|
27
|
+
"Bash(git branch:*)",
|
|
28
|
+
"Bash(source:*)",
|
|
29
|
+
"Bash(cargo clippy:*)",
|
|
30
|
+
"Bash(cat:*)",
|
|
31
|
+
"Bash(pre-commit run:*)",
|
|
32
|
+
"Bash(uv run pre-commit run:*)",
|
|
33
|
+
"Bash(pip show:*)",
|
|
34
|
+
"Bash(uv pip show:*)",
|
|
35
|
+
"Bash(uv pip install:*)",
|
|
36
|
+
"Bash(pre-commit --version:*)",
|
|
37
|
+
"Bash(uv run pytest:*)",
|
|
38
|
+
"WebFetch(domain:github.com)",
|
|
39
|
+
"WebFetch(domain:docs.astral.sh)",
|
|
40
|
+
"WebSearch",
|
|
41
|
+
"Bash(uvx ty check:*)",
|
|
42
|
+
"Bash(grep:*)",
|
|
43
|
+
"Bash(python3:*)",
|
|
44
|
+
"Bash(maturin develop:*)",
|
|
45
|
+
"Bash(.venv/bin/python:*)",
|
|
46
|
+
"Bash(PYTHONPATH=/home/gmchiu/Documents/GitHub/mahout /home/gmchiu/Documents/GitHub/mahout/qdp/qdp-python/.venv/bin/python:*)",
|
|
47
|
+
"Bash(PYTHONPATH=/home/gmchiu/Documents/GitHub/mahout .venv/bin/pytest:*)",
|
|
48
|
+
"Bash(.venv/bin/pytest tests/ -v)",
|
|
49
|
+
"Bash(git add:*)",
|
|
50
|
+
"Bash(git commit --amend -m \"$\\(cat <<''EOF''\nIntegrate Quantum Data Plane \\(QDP\\) into QuMat\n\n- Add qumat/qdp.py as public API for `import qumat.qdp as qdp`\n- Rename native module from mahout_qdp to _qdp\n- Rename package from qdp-python to qumat-qdp\n- Update all imports in tests/benchmarks/docs\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\nEOF\n\\)\")",
|
|
51
|
+
"Bash(git commit --amend -m \"$\\(cat <<''EOF''\nIntegrate Quantum Data Plane \\(QDP\\) into QuMat\n\n- Add qumat/qdp.py as public API for `import qumat.qdp as qdp`\n- Rename native module from mahout_qdp to _qdp\n- Rename package from qdp-python to qumat-qdp\n- Add qumat-qdp as optional dependency: `uv sync --group qdp`\n- Update all imports in tests/benchmarks/docs\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\nEOF\n\\)\")",
|
|
52
|
+
"Bash(git commit:*)",
|
|
53
|
+
"WebFetch(domain:raw.githubusercontent.com)",
|
|
54
|
+
"Bash(gh pr view:*)",
|
|
55
|
+
"Bash(cargo check:*)",
|
|
56
|
+
"Bash(uv run python:*)",
|
|
57
|
+
"Bash(bundle install:*)",
|
|
58
|
+
"Bash(bundle exec jekyll serve:*)",
|
|
59
|
+
"Bash(pytest:*)",
|
|
60
|
+
"Bash(find:*)",
|
|
61
|
+
"Bash(git push:*)",
|
|
62
|
+
"Bash(git -C /home/gmchiu/Documents/GitHub/mahout log --all --oneline --grep=basis)",
|
|
63
|
+
"Bash(git -C /home/gmchiu/Documents/GitHub/mahout show 63ef825bc --stat)",
|
|
64
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/qdp/qdp-python/.venv/bin/maturin develop)",
|
|
65
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/.venv/bin/maturin develop:*)",
|
|
66
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/qdp/qdp-python/.venv/bin/maturin develop:*)",
|
|
67
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/qdp/qdp-python/.venv/bin/maturin build --release)",
|
|
68
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/.venv/bin/python -m pytest:*)",
|
|
69
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/.venv/bin/python:*)",
|
|
70
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/qdp/qdp-python/.venv/bin/python -m pytest:*)",
|
|
71
|
+
"Bash(VIRTUAL_ENV=/home/gmchiu/Documents/GitHub/mahout/.venv PATH=/home/gmchiu/Documents/GitHub/mahout/.venv/bin:$PATH /home/gmchiu/Documents/GitHub/mahout/qdp/qdp-python/.venv/bin/maturin develop:*)",
|
|
72
|
+
"Bash(export PATH=/home/gmchiu/.cargo/bin:$PATH)",
|
|
73
|
+
"Bash(/home/gmchiu/Documents/GitHub/mahout/.venv/bin/maturin:*)",
|
|
74
|
+
"Bash(.venv/bin/maturin develop:*)",
|
|
75
|
+
"Bash(uv --version:*)",
|
|
76
|
+
"Bash(make install_benchmark:*)",
|
|
77
|
+
"Bash(~/.bashrc)",
|
|
78
|
+
"Bash(export LIBTORCH_USE_PYTORCH=1)",
|
|
79
|
+
"Bash(LIBTORCH_USE_PYTORCH=1 cargo clippy:*)",
|
|
80
|
+
"Bash(~/.profile)",
|
|
81
|
+
"Bash(LIBTORCH_USE_PYTORCH=1 pre-commit run:*)",
|
|
82
|
+
"Bash(pre-commit clean:*)",
|
|
83
|
+
"Bash(uv run:*)",
|
|
84
|
+
"Bash(pip install:*)",
|
|
85
|
+
"Bash(pip uninstall:*)",
|
|
86
|
+
"Bash(.venv/bin/pre-commit run:*)",
|
|
87
|
+
"Bash(LIBTORCH_USE_PYTORCH=1 .venv/bin/pre-commit run clippy:*)",
|
|
88
|
+
"Bash(LIBTORCH_USE_PYTORCH=1 LIBTORCH_BYPASS_VERSION_CHECK=1 .venv/bin/pre-commit run clippy:*)",
|
|
89
|
+
"Bash(pre-commit install:*)",
|
|
90
|
+
"Bash(LIBTORCH=/home/gmchiu/Documents/GitHub/mahout/.venv/lib/python3.11/site-packages/torch LD_LIBRARY_PATH=/home/gmchiu/Documents/GitHub/mahout/.venv/lib/python3.11/site-packages/torch/lib:$LD_LIBRARY_PATH uv run:*)",
|
|
91
|
+
"Bash(echo:*)",
|
|
92
|
+
"Bash(chmod:*)",
|
|
93
|
+
"Bash(cargo clean:*)",
|
|
94
|
+
"Bash(LIBTORCH=/home/gmchiu/Documents/GitHub/mahout/.venv/lib/python3.11/site-packages/torch LD_LIBRARY_PATH=/home/gmchiu/Documents/GitHub/mahout/.venv/lib/python3.11/site-packages/torch/lib cargo build:*)",
|
|
95
|
+
"Bash(LIBTORCH=/home/gmchiu/Documents/GitHub/mahout/.venv/lib/python3.11/site-packages/torch LD_LIBRARY_PATH=/home/gmchiu/Documents/GitHub/mahout/.venv/lib/python3.11/site-packages/torch/lib uv run pre-commit run:*)",
|
|
96
|
+
"Bash(uv python list:*)",
|
|
97
|
+
"Bash(uv pip list:*)",
|
|
98
|
+
"Bash(gh pr checks:*)",
|
|
99
|
+
"Bash(make install:*)",
|
|
100
|
+
"Bash(ls:*)",
|
|
101
|
+
"WebFetch(domain:pre-commit.com)",
|
|
102
|
+
"WebFetch(domain:pypi.org)",
|
|
103
|
+
"Bash(uv build:*)"
|
|
104
|
+
],
|
|
105
|
+
"deny": [],
|
|
106
|
+
"ask": []
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "CUDA Python + Rust Dev",
|
|
3
|
+
"image": "nvidia/cuda:12.4.1-devel-ubuntu22.04",
|
|
4
|
+
// Give container full GPU access
|
|
5
|
+
"runArgs": [
|
|
6
|
+
"--gpus",
|
|
7
|
+
"all"
|
|
8
|
+
],
|
|
9
|
+
// Auto mount your GitHub repo as workspace
|
|
10
|
+
"workspaceFolder": "/workspace",
|
|
11
|
+
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
|
|
12
|
+
// Install Python via devcontainers-features
|
|
13
|
+
"features": {
|
|
14
|
+
"ghcr.io/devcontainers/features/python:1": {
|
|
15
|
+
"version": "3.10"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
// Additional setup (Rust, CUDA tools, etc.)
|
|
19
|
+
"postCreateCommand": "bash /workspace/.devcontainer/setup.sh",
|
|
20
|
+
"customizations": {
|
|
21
|
+
"vscode": {
|
|
22
|
+
"extensions": [
|
|
23
|
+
"ms-python.python",
|
|
24
|
+
"tamasfe.even-better-toml",
|
|
25
|
+
"rust-lang.rust-analyzer"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -eux
|
|
3
|
+
|
|
4
|
+
# Install Rust + Cargo
|
|
5
|
+
if ! command -v cargo >/dev/null 2>&1; then
|
|
6
|
+
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
7
|
+
echo 'source $HOME/.cargo/env' >> ~/.bashrc
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# Common dev tools
|
|
11
|
+
apt-get update
|
|
12
|
+
apt-get install -y \
|
|
13
|
+
build-essential \
|
|
14
|
+
pkg-config \
|
|
15
|
+
git \
|
|
16
|
+
vim
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# uv
|
|
20
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
21
|
+
source $HOME/.local/bin/env
|
|
22
|
+
|
|
23
|
+
# setup pre-commit hooks
|
|
24
|
+
cd /workspaces/mahout
|
|
25
|
+
uv sync --group dev
|
|
26
|
+
uv run pre-commit install
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Bug Report"
|
|
3
|
+
about: "Report a bug to help us improve"
|
|
4
|
+
title: "[Bug] "
|
|
5
|
+
labels: ["bug"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### Description
|
|
10
|
+
A clear and concise description of the bug.
|
|
11
|
+
|
|
12
|
+
### Steps to Reproduce
|
|
13
|
+
1. Step 1
|
|
14
|
+
2. Step 2
|
|
15
|
+
3. Step 3
|
|
16
|
+
|
|
17
|
+
### Expected Behavior
|
|
18
|
+
What should have happened?
|
|
19
|
+
|
|
20
|
+
### Actual Behavior
|
|
21
|
+
What actually happened?
|
|
22
|
+
|
|
23
|
+
### Screenshots or Logs
|
|
24
|
+
Add screenshots or log output if applicable.
|
|
25
|
+
|
|
26
|
+
### Environment
|
|
27
|
+
- **OS:** e.g., Windows, Linux
|
|
28
|
+
- **Browser/Tool Version:** e.g., Chrome 96, Python 3.8
|
|
29
|
+
|
|
30
|
+
### Additional Context
|
|
31
|
+
Any other information that may be helpful.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Documentation Issue"
|
|
3
|
+
about: "Report issues related to documentation"
|
|
4
|
+
title: "[Docs] "
|
|
5
|
+
labels: ["docs"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### Description
|
|
10
|
+
What is unclear, incorrect, or missing?
|
|
11
|
+
|
|
12
|
+
### Location of the Issue
|
|
13
|
+
Provide links or file paths where the issue exists.
|
|
14
|
+
|
|
15
|
+
### Suggested Improvement
|
|
16
|
+
How should this be fixed?
|
|
17
|
+
|
|
18
|
+
### Additional Context
|
|
19
|
+
Anything else that would help improve the documentation.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "Feature Request"
|
|
3
|
+
about: "Suggest a new feature"
|
|
4
|
+
title: "[Feature] "
|
|
5
|
+
labels: ["enhancement"]
|
|
6
|
+
assignees: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
### Summary
|
|
10
|
+
A brief description of the feature.
|
|
11
|
+
|
|
12
|
+
### Use Case
|
|
13
|
+
Explain why this feature is useful.
|
|
14
|
+
|
|
15
|
+
### Proposed Implementation
|
|
16
|
+
How do you propose implementing this feature?
|
|
17
|
+
|
|
18
|
+
### Alternatives Considered
|
|
19
|
+
Have you thought of other ways to solve the same problem?
|
|
20
|
+
|
|
21
|
+
### Additional Context
|
|
22
|
+
Any other relevant information or resources.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
## Issue Title
|
|
2
|
+
Provide a clear and concise title for the issue
|
|
3
|
+
|
|
4
|
+
### Description
|
|
5
|
+
Describe the issue in detail. Include what the current behavior is and provide any relevant examples or screenshots.
|
|
6
|
+
|
|
7
|
+
### Steps to Reproduce
|
|
8
|
+
1. First step
|
|
9
|
+
2. Second step
|
|
10
|
+
3. Third step
|
|
11
|
+
|
|
12
|
+
### Expected Behavior
|
|
13
|
+
What do you expect to happen?
|
|
14
|
+
|
|
15
|
+
### Actual Behavior
|
|
16
|
+
What actually happens? Include any error messages or logs if applicable.
|
|
17
|
+
|
|
18
|
+
### Environment
|
|
19
|
+
- **OS:** e.g. Windows, MacOS, Linux
|
|
20
|
+
- **Browser:** e.g. Chrome, Firefox, Safari
|
|
21
|
+
- **Version:** e.g. 1.0.0
|
|
22
|
+
|
|
23
|
+
### Suggested Fix
|
|
24
|
+
If you have an idea for a fix, please provide details here.
|
|
25
|
+
|
|
26
|
+
### Additional Context
|
|
27
|
+
Add any other context about the problem here. For example, links to related issues or discussions.
|
|
28
|
+
|
|
29
|
+
### Checklist
|
|
30
|
+
- [ ] I have searched the existing issues for duplicates.
|
|
31
|
+
- [ ] I have provided the information as detailed as possible.
|
|
32
|
+
- [ ] I provided relevant screenshots or files if necessary.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
### Purpose of PR
|
|
2
|
+
<!-- Describe what this PR does. -->
|
|
3
|
+
|
|
4
|
+
### Related Issues or PRs
|
|
5
|
+
<!-- Add links to related issues or PRs. -->
|
|
6
|
+
<!-- - Closes #123 -->
|
|
7
|
+
<!-- - Related to #123 -->
|
|
8
|
+
|
|
9
|
+
### Changes Made
|
|
10
|
+
<!-- Please mark one with an "x" -->
|
|
11
|
+
- [ ] Bug fix
|
|
12
|
+
- [ ] New feature
|
|
13
|
+
- [ ] Refactoring
|
|
14
|
+
- [ ] Documentation
|
|
15
|
+
- [ ] Test
|
|
16
|
+
- [ ] CI/CD pipeline
|
|
17
|
+
- [ ] Other
|
|
18
|
+
|
|
19
|
+
### Breaking Changes
|
|
20
|
+
<!-- Does this PR introduce a breaking change? -->
|
|
21
|
+
- [ ] Yes
|
|
22
|
+
- [ ] No
|
|
23
|
+
|
|
24
|
+
### Checklist
|
|
25
|
+
<!-- Please mark each item with an "x" when complete -->
|
|
26
|
+
<!-- If not all items are complete, please open this as a **Draft PR**.
|
|
27
|
+
Once all requirements are met, mark as ready for review. -->
|
|
28
|
+
|
|
29
|
+
- [ ] Added or updated unit tests for all changes
|
|
30
|
+
- [ ] Added or updated documentation for all changes
|
|
31
|
+
- [ ] Successfully built and ran all unit tests or manual tests locally
|
|
32
|
+
- [ ] PR title follows "MAHOUT-XXX: Brief Description" format (if related to an issue)
|
|
33
|
+
- [ ] Code follows ASF guidelines
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Label configuration for GitHub Actions labeler
|
|
2
|
+
|
|
3
|
+
bug:
|
|
4
|
+
- '/(bug|error|fix|not working|broken)/i'
|
|
5
|
+
|
|
6
|
+
enhancement:
|
|
7
|
+
- '/(feature|enhancement|improvement|add|new)/i'
|
|
8
|
+
|
|
9
|
+
docs:
|
|
10
|
+
- '/(doc|readme|guide|tutorial)/i'
|
|
11
|
+
|
|
12
|
+
question:
|
|
13
|
+
- '/(question|help|how to|\?)/i'
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
+
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
+
# this work for additional information regarding copyright ownership.
|
|
5
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
+
# (the "License"); you may not use this file except in compliance with
|
|
7
|
+
# the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
+
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
+
# this work for additional information regarding copyright ownership.
|
|
5
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
+
# (the "License"); you may not use this file except in compliance with
|
|
7
|
+
# the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
import ast
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GeneralReviewCheck:
|
|
21
|
+
def __init__(self, client, model_name):
|
|
22
|
+
self.client = client
|
|
23
|
+
self.model_name = model_name
|
|
24
|
+
|
|
25
|
+
def process_pr_file(self, file, repo, pr):
|
|
26
|
+
comments = []
|
|
27
|
+
analyzed = False
|
|
28
|
+
|
|
29
|
+
if file.filename.endswith(".py"):
|
|
30
|
+
analyzed = True
|
|
31
|
+
content = repo.get_contents(
|
|
32
|
+
file.filename, ref=pr.head.sha
|
|
33
|
+
).decoded_content.decode()
|
|
34
|
+
|
|
35
|
+
# Basic code analysis
|
|
36
|
+
try:
|
|
37
|
+
tree = ast.parse(content)
|
|
38
|
+
analysis = self.analyze_code_structure(tree)
|
|
39
|
+
if analysis:
|
|
40
|
+
comments.append(
|
|
41
|
+
{"path": file.filename, "body": analysis, "line": 1}
|
|
42
|
+
)
|
|
43
|
+
except SyntaxError as e:
|
|
44
|
+
comments.append(
|
|
45
|
+
{
|
|
46
|
+
"path": file.filename,
|
|
47
|
+
"body": f"⚠️ Syntax error found:\n{e}",
|
|
48
|
+
"line": 1,
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
return comments, analyzed
|
|
53
|
+
|
|
54
|
+
def analyze_code_structure(self, tree):
|
|
55
|
+
analysis = []
|
|
56
|
+
|
|
57
|
+
# Check for large classes
|
|
58
|
+
for node in ast.walk(tree):
|
|
59
|
+
if isinstance(node, ast.ClassDef):
|
|
60
|
+
methods = [n for n in node.body if isinstance(n, ast.FunctionDef)]
|
|
61
|
+
if len(methods) > 10:
|
|
62
|
+
analysis.append(
|
|
63
|
+
f"- Class '{node.name}' has {len(methods)} methods. Consider splitting into smaller classes."
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# Check for long functions
|
|
67
|
+
for node in ast.walk(tree):
|
|
68
|
+
if isinstance(node, ast.FunctionDef):
|
|
69
|
+
lines = node.end_lineno - node.lineno if node.end_lineno else 0
|
|
70
|
+
if lines > 50:
|
|
71
|
+
analysis.append(
|
|
72
|
+
f"- Function '{node.name}' is {lines} lines long. Consider breaking it into smaller functions."
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
# Check for TODO comments
|
|
76
|
+
for node in ast.walk(tree):
|
|
77
|
+
if isinstance(node, ast.Expr) and isinstance(node.value, ast.Constant):
|
|
78
|
+
if (
|
|
79
|
+
isinstance(node.value.value, str)
|
|
80
|
+
and "TODO" in node.value.value.upper()
|
|
81
|
+
):
|
|
82
|
+
analysis.append(f"- TODO comment found: {node.value.value}")
|
|
83
|
+
|
|
84
|
+
if analysis:
|
|
85
|
+
return "🔍 Code structure analysis:\n" + "\n".join(analysis)
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
def generate_general_impression(self, pr):
|
|
89
|
+
prompt = f"""Provide a general impression of this pull request. Consider:
|
|
90
|
+
- Overall code quality
|
|
91
|
+
- Code organization
|
|
92
|
+
- Documentation
|
|
93
|
+
- Potential improvements
|
|
94
|
+
- Areas that need special attention
|
|
95
|
+
|
|
96
|
+
Pull Request Details:
|
|
97
|
+
Title: {pr.title}
|
|
98
|
+
Description: {pr.body}
|
|
99
|
+
Files Changed: {pr.changed_files}
|
|
100
|
+
Additions: {pr.additions}
|
|
101
|
+
Deletions: {pr.deletions}
|
|
102
|
+
|
|
103
|
+
Provide your analysis in markdown format with these sections:
|
|
104
|
+
1. Overall Impression
|
|
105
|
+
2. Strengths
|
|
106
|
+
3. Areas for Improvement
|
|
107
|
+
4. Special Attention Needed"""
|
|
108
|
+
|
|
109
|
+
response = self.client.chat.completions.create(
|
|
110
|
+
model=self.model_name,
|
|
111
|
+
messages=[
|
|
112
|
+
{
|
|
113
|
+
"role": "system",
|
|
114
|
+
"content": "You are an experienced code reviewer. Provide a high-level analysis of pull requests.",
|
|
115
|
+
},
|
|
116
|
+
{"role": "user", "content": prompt},
|
|
117
|
+
],
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
return response.choices[0].message.content
|
|
121
|
+
|
|
122
|
+
def process_pr(self, pr):
|
|
123
|
+
general_analysis = self.generate_general_impression(pr)
|
|
124
|
+
return [{"path": "GENERAL", "body": general_analysis, "line": 0}], True
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
#
|
|
3
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
4
|
+
# contributor license agreements. See the NOTICE file distributed with
|
|
5
|
+
# this work for additional information regarding copyright ownership.
|
|
6
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
7
|
+
# (the "License"); you may not use this file except in compliance with
|
|
8
|
+
# the License. You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
import os
|
|
19
|
+
import sys
|
|
20
|
+
from github import Github
|
|
21
|
+
from gofannon.github.pr_review_tool import PRReviewTool
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def check_env_vars():
|
|
25
|
+
required_vars = [
|
|
26
|
+
"GITHUB_TOKEN",
|
|
27
|
+
"OPENAI_API_KEY",
|
|
28
|
+
"OPENAI_BASE_URL",
|
|
29
|
+
"OPENAI_MODEL_NAME",
|
|
30
|
+
"PR_NUMBER",
|
|
31
|
+
"REPO_NAME",
|
|
32
|
+
]
|
|
33
|
+
for var in required_vars:
|
|
34
|
+
if not os.environ.get(var):
|
|
35
|
+
sys.exit(f"Error: Required environment variable '{var}' is missing.")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
check_env_vars()
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def main():
|
|
42
|
+
pr_number = int(os.environ["PR_NUMBER"])
|
|
43
|
+
repo_name = os.environ["REPO_NAME"]
|
|
44
|
+
pr_review_tool = PRReviewTool()
|
|
45
|
+
review_summary = pr_review_tool.fn(pr_number=pr_number, repo_name=repo_name)
|
|
46
|
+
|
|
47
|
+
# Post the review comment to the pull request using PyGithub.
|
|
48
|
+
g = Github(os.environ["GITHUB_TOKEN"])
|
|
49
|
+
repo = g.get_repo(repo_name)
|
|
50
|
+
pr = repo.get_pull(pr_number)
|
|
51
|
+
pr.create_issue_comment(review_summary)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
if __name__ == "__main__":
|
|
55
|
+
main()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "Issue Labeler"
|
|
2
|
+
on:
|
|
3
|
+
issues:
|
|
4
|
+
types: [opened, edited]
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
triage:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: github/issue-labeler@v3.4
|
|
11
|
+
with:
|
|
12
|
+
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
13
|
+
configuration-path: .github/labeler.yml
|
|
14
|
+
enable-versioned-regex: 0
|
|
15
|
+
include-title: 1
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: CI for Jupyter Notebooks
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- "**.py"
|
|
8
|
+
- "**.ipynb"
|
|
9
|
+
- "pyproject.toml"
|
|
10
|
+
- ".github/workflows/notebook-testing.yml"
|
|
11
|
+
pull_request:
|
|
12
|
+
branches: [main]
|
|
13
|
+
paths:
|
|
14
|
+
- "**.py"
|
|
15
|
+
- "**.ipynb"
|
|
16
|
+
- "pyproject.toml"
|
|
17
|
+
- ".github/workflows/notebook-testing.yml"
|
|
18
|
+
workflow_dispatch:
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
test-notebooks:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout repository
|
|
26
|
+
uses: actions/checkout@v6
|
|
27
|
+
|
|
28
|
+
- name: Set up Python with uv
|
|
29
|
+
uses: astral-sh/setup-uv@v7
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.12"
|
|
32
|
+
enable-cache: true
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: |
|
|
36
|
+
uv venv
|
|
37
|
+
uv pip install nbclient ipykernel -e .
|
|
38
|
+
|
|
39
|
+
- name: Run Jupyter Notebooks
|
|
40
|
+
run: |
|
|
41
|
+
for nb in $(find . -name '*.ipynb'); do
|
|
42
|
+
echo "Executing $nb"
|
|
43
|
+
uv run jupyter execute "$nb" --inplace
|
|
44
|
+
done
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
3
|
+
# contributor license agreements. See the NOTICE file distributed with
|
|
4
|
+
# this work for additional information regarding copyright ownership.
|
|
5
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
6
|
+
# (the "License"); you may not use this file except in compliance with
|
|
7
|
+
# the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
name: PR Tool Review
|
|
18
|
+
on:
|
|
19
|
+
pull_request_target:
|
|
20
|
+
types: [labeled]
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
review:
|
|
24
|
+
if: github.event.label.name == 'run-tests'
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- name: Check out base repository
|
|
28
|
+
uses: actions/checkout@v6
|
|
29
|
+
with:
|
|
30
|
+
fetch-depth: 0
|
|
31
|
+
- name: Set up Python
|
|
32
|
+
uses: actions/setup-python@v6
|
|
33
|
+
with:
|
|
34
|
+
python-version: '3.10'
|
|
35
|
+
- name: Install Gofannon
|
|
36
|
+
run: |
|
|
37
|
+
pip install gofannon
|
|
38
|
+
- name: Run PR Review Tool
|
|
39
|
+
env:
|
|
40
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
41
|
+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
42
|
+
OPENAI_BASE_URL: "https://api.deepinfra.com/v1/openai"
|
|
43
|
+
OPENAI_MODEL_NAME: "meta-llama/Llama-3.3-70B-Instruct-Turbo"
|
|
44
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
45
|
+
REPO_NAME: ${{ github.repository }}
|
|
46
|
+
run: |
|
|
47
|
+
python .github/scripts/review_pr.py
|