StabiliserSuite
Toolbox for benchmarking and stress‑testing NISQ quantum processors
Clifford circuits • topology‑aware routing • gate‑transformation search
✨ Key Features
- Random Clifford generator –
O(n²)tableau routine for uniformly random stabiliser circuits - Topology‑aware routing – 4‑CNOT “bridge’’ pattern for non‑adjacent CNOTs on heavy‑hex and ion‑trap layouts
- Gate‑transformation search – meet‑in‑the‑middle engine (canonical‑phase hashing, memoisation) finds depth‑bounded Clifford / non‑Clifford substitutions
- Unified workflow – circuit synthesis → classical stabiliser simulation → Qiskit hardware run → fidelity report
- Open‑source & extensible – MIT licence, clean Python API, minimal external deps
🚀 Quick Start
Conda (recommended)
mamba create -n stabilisersuite -c conda-forge stabiliser_suite
mamba activate stabilisersuite
Pure‑pip (light‑weight alternative)
python -m venv .venv
source .venv/bin/activate
pip install stabiliser_suite
Example usage
import stabiliser_suite as ss
from qiskit.circuit.library import CXGate
# 1. random 6‑qubit Clifford circuit
circ = ss.clifford.sample_clifford_group(3)
print(circ.draw())
# 2. non‑Clifford substitute for CX at depth ≤3
subs = ss.gate_utils.find_non_clifford_transformations(CXGate(), max_depth=3)
print("First match:", subs[0][0])
🗂 Project Layout
stabiliser_suite/
├── benchmark # simple benchmarking scripts
├── clifford # Clifford-circuit generation
├── circuit # 4-CNOT construction
├── gate_utils # gate transformation search
└── tests/ # pytest suite
📖 Documentation
Full API reference and tutorials will be later put in docs/.
Rendered docs will be hosted at https://achaad.github.io/StabiliserSuite/.
🤝 Contributing
- Fork → feature branch → pull request against
main. - Run
pytestandmypylocally (mamba env update -f environment.yml -n stabilisersuite --prune). - Code is auto‑formatted with Black.
The project uses semantic versioning 2.0, i.e. v${MAJOR}.${MINOR}.${PATCH} (e.g. v0.1.123)
The project is configured with automatic releases on any commits to the master branch. All the merge commits should be prepended with a tag from the list below (e.g. "feat: Add ESR support"):
| Tag | Description |
|---|---|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation only changes |
| style | Only code style changes |
| refactor | Code refactoring |
| perf | Performance improvements |
| test | Adding new or correcting existing tests |
| build | Changes which modify the application build or dependencies |
| ci | Changes to the CI/CD configuration |
| revert | Previous commit reverts |
📄 License
StabiliserSuite is released under the MIT License (see LICENSE).
📑 Citation
@misc{stabilisersuite2025,
author = {Anton Perepelenko},
title = {StabiliserSuite: Toolbox for Quantum Computer Testing},
year = {2025},
howpublished = {\url{https://github.com/Achaad/StabiliserSuite}},
note = {MIT License}
}
Metadata
Release files for StabiliserSuite 1.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stabilisersuite-1.1.11.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stabilisersuite-1.1.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.5 kB
Release files / stabilisersuite-1.1.11.tar.gz
| Download URL | stabilisersuite-1.1.11.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
118a6d722747ee90b182b4c9db2d44c8a403edb2f8b697ee1af21730ffc08b61
|
|
BLAKE2b-256 checksum How to use checksums |
aa0ce0d7e4a858a79954f07555c9c724d942ba17657a0dc186c07e4f739110b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 5, 2025.
Transparency logRelease files / stabilisersuite-1.1.11-py3-none-any.whl
| Download URL | stabilisersuite-1.1.11-py3-none-any.whl |
|---|---|
| Size | 16.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
51c60a551f41f7b71378a8cdc06ffa8863784d19f9341c86bb3d422201f06168
|
|
BLAKE2b-256 checksum How to use checksums |
0adc08de066f06c5d8d8aa2cfdda719bb23002c9ed0a44540662339f11bbac32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 5, 2025.
Transparency log