Metadata-Version: 2.1
Name: quantum-pipeline
Version: 2.0.0
Summary: Framework for running, monitoring and analysing quantum algorithms.
Author-Email: Piotr Krzysztof <piotr@codextechnologies.org>
Maintainer-Email: Piotr Krzysztof <piotr@codextechnologies.org>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: POSIX :: Linux
Project-URL: Homepage, https://github.com/straightchlorine/quantum-pipeline
Requires-Python: <3.13,>=3.12
Requires-Dist: qiskit>=1.4.2
Requires-Dist: qiskit-ibm-runtime>=0.37.0
Requires-Dist: qiskit-aer>=0.15.1
Requires-Dist: qiskit-nature>=0.7.2
Requires-Dist: qiskit-qasm3-import>=0.6.0
Requires-Dist: pyscf>=2.8.0
Requires-Dist: reportlab>=4.3.1
Requires-Dist: matplotlib>=3.10.0
Requires-Dist: pylatexenc>=2.10
Requires-Dist: scipy>=1.15.2
Requires-Dist: numpy>=2.2.3
Requires-Dist: psutil>=7.1.2
Requires-Dist: avro>=1.12.0
Requires-Dist: kafka-python-ng>=2.2.3
Requires-Dist: pyspark>=3.5.5
Requires-Dist: cryptography>=44.0.1
Requires-Dist: Jinja2>=3.1.6
Requires-Dist: Requests>=2.32.3
Provides-Extra: dev
Requires-Dist: pytest>=8.3.4; extra == "dev"
Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
Requires-Dist: debugpy>=1.8.12; extra == "dev"
Requires-Dist: ruff>=0.15.2; extra == "dev"
Requires-Dist: mypy>=1.19.1; extra == "dev"
Requires-Dist: testcontainers>=4.13.3; extra == "dev"
Requires-Dist: pytest-mock>=3.15.1; extra == "dev"
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
Requires-Dist: pytest-randomly>=4.0.1; extra == "dev"
Requires-Dist: pytest-timeout>=2.3.1; extra == "dev"
Requires-Dist: pytest-randomly>=3.16.0; extra == "dev"
Requires-Dist: pytest-watch>=4.2.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.5.3; extra == "docs"
Requires-Dist: mkdocs-material>=9.5.3; extra == "docs"
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2.2; extra == "docs"
Requires-Dist: mkdocs-panzoom-plugin>=0.5.2; extra == "docs"
Requires-Dist: pymdown-extensions>=10.7; extra == "docs"
Provides-Extra: ml
Requires-Dist: scikit-learn>=1.8.0; extra == "ml"
Requires-Dist: xgboost>=3.2.0; extra == "ml"
Requires-Dist: seaborn>=0.13.2; extra == "ml"
Requires-Dist: jupyterlab>=4.5.6; extra == "ml"
Requires-Dist: mlflow>=3.10.1; extra == "ml"
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://qp-docs.codextechnologies.org/mkdocs/banner.svg" alt="Quantum Pipeline" width="350">
</p>

<div align="center">

**Repository:** [GitHub](https://github.com/straightchlorine/quantum-pipeline) (primary) · [Codeberg](https://codeberg.org/piotrkrzysztof/quantum-pipeline) (mirror)

[![PyPI version](https://badge.fury.io/py/quantum-pipeline.svg)](https://pypi.org/project/quantum-pipeline/)
[![Total Downloads](https://static.pepy.tech/badge/quantum-pipeline)](https://pepy.tech/project/quantum-pipeline)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/quantum-pipeline)](https://pypi.org/project/quantum-pipeline/)
[![Docker Pulls](https://img.shields.io/docker/pulls/straightchlorine/quantum-pipeline.svg)](https://hub.docker.com/r/straightchlorine/quantum-pipeline)

[Documentation](https://docs.qp.piotrkrzysztof.dev) · [Quick Start](https://docs.qp.piotrkrzysztof.dev/getting-started/quick-start/) · [Examples](https://docs.qp.piotrkrzysztof.dev/usage/examples/)

</div>

---

A framework for running quantum algorithms, with optional Kafka streaming, Spark processing, and Airflow orchestration. Currently implements the Variational Quantum Eigensolver (VQE) for ground-state energy estimation. Built as an engineering thesis project.

## Quick Start

```bash
pip install quantum-pipeline
quantum-pipeline -f molecules.json -b sto3g --max-iterations 100 --optimizer L-BFGS-B
```

Or with Docker:

```bash
docker pull straightchlorine/quantum-pipeline:cpu
docker run --rm straightchlorine/quantum-pipeline:cpu -f data/molecules.json -b sto3g --max-iterations 100
```

See the [installation guide](https://docs.qp.piotrkrzysztof.dev/getting-started/installation/) for detailed setup, including GPU acceleration and full platform deployment.

## Features

**Quantum Computing** -- VQE execution with multiple optimizers (L-BFGS-B, COBYLA, SLSQP, and others), configurable ansatz circuits (EfficientSU2, RealAmplitudes, ExcitationPreserving), parameter initialization strategies (random or Hartree-Fock based), multiple basis sets (sto-3g, 6-31g, cc-pVDZ), and GPU acceleration via CUDA. [Learn more](https://docs.qp.piotrkrzysztof.dev/scientific/vqe-algorithm/)

**Data Platform** -- Real-time Kafka streaming with Avro serialization, Spark-based ML feature engineering, Airflow workflow orchestration. [Architecture overview](https://docs.qp.piotrkrzysztof.dev/architecture/)

**ML Pipeline** -- Convergence prediction and energy estimation models trained on VQE experiment data. Includes preprocessing, experiment tracking, and a dedicated Docker Compose stack (`just ml-up` / `just ml-down`).

**Monitoring** -- Prometheus metrics export, Grafana dashboards, resource tracking. Configurable via environment variables (`MONITORING_ENABLED`, `PUSHGATEWAY_URL`, `MONITORING_INTERVAL`, `MONITORING_EXPORT_FORMAT`) or CLI flags. [Monitoring setup](https://docs.qp.piotrkrzysztof.dev/monitoring/)

**Deployment** -- Docker images for CPU and GPU (`quantum-pipeline:cpu`, `quantum-pipeline:gpu`). The GPU image on Docker Hub is built for Ampere (RTX 30xx) - rebuild with `CUDA_ARCH=6.1` for Pascal or `8.9` for Ada Lovelace. Sample molecule files are included in the image under `data/`. Multi-service Docker Compose stack for the full platform. [Deployment guide](https://docs.qp.piotrkrzysztof.dev/deployment/)

## Python API

```python
from quantum_pipeline.runners.vqe_runner import VQERunner

runner = VQERunner(
    filepath='data/molecules.json',
    basis_set='sto3g',
    max_iterations=100,
    optimizer='L-BFGS-B',
    ansatz_reps=3,
)
runner.run()
```

## License

MIT License. See [LICENSE](LICENSE) for details.

## Contact

- **Email:** [piotr@codextechnologies.org](mailto:piotr@codextechnologies.org)
- **GitHub:** [straightchlorine](https://github.com/straightchlorine)
- **Codeberg:** [piotrkrzysztof](https://codeberg.org/piotrkrzysztof/quantum-pipeline)
