qualang-tools
The qualang_tools package includes various tools related to QUA programs in Python
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no known vulnerabilities, installs cleanly, and supports current Python versions. It is purpose-built for QUA users and provides essential utilities that would otherwise require custom implementation. Install it if you are writing QUA programs; skip it if you do not use Quantum Machines hardware.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9–3.13.
- Some optional features (interactive plotting, two-qubit randomized benchmarking) need extras installed separately.
- Low friction install with a pure-Python wheel.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive and imposes minimal restrictions on use or modification. You can use this package in commercial or proprietary projects without licensing obligations.
last release 2026-07-31 (14 days) · last repo commit 2026-08-12 · 59 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 121,982 downloads/mo, #11,965 on PyPI
Alternatives
Verify before relying
pip install qualang-tools
from qualang_tools.loops import from_array
import numpy as np
freq_array = np.linspace(1, 2, 11)
loop_values = from_array(freq_array)- Whether qm-qua (the core QUA runtime dependency) is freely available or requires a commercial license or hardware access.
- Whether all nine runtime dependencies are automatically installed or if some are optional.
- Performance characteristics when handling large datasets or complex waveforms.
What it is and what it does
qualang-tools is a companion library for the QUA programming language, used to write and run quantum computing experiments on Quantum Machines' OPX hardware. It bundles a collection of specialized utilities: loop tools for parametrizing QUA for-loops with numpy arrays, plotting and result-handling helpers, unit conversion (MHz, microseconds, millivolts), data analysis (including state discrimination), waveform generation with nanosecond resolution, and configuration management for the OPX control system.
The package is organized into modules covering different aspects of quantum experiment workflow—from low-level waveform design and hardware control to high-level experiment orchestration and multi-user coordination. It also includes integrations with external frameworks like QCoDeS and tools for calibration, dynamic parameter tuning (video mode), and digital filter design. Most users will import specific submodules (e.g., loops, plot, results, units) rather than the entire package.
Use it for
- Parametrize QUA for-loops using numpy arrays (linspace, arange, logspace) to sweep experimental parameters.
- Generate and manage complex pulse sequences with nanosecond timing resolution using the Bakery framework.
- Extract, analyze, and save experimental results from QUA programs, including state discrimination for two-level systems.
- Convert between physical units (MHz, microseconds, millivolts) and hardware-native units in QUA programs.
- Configure and control OPX hardware outputs in continuous-wave mode or as a vector network analyzer.
- Perform standard single-qubit calibrations and randomized benchmarking experiments from a single Python script.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no known vulnerabilities, installs cleanly, and supports current Python versions. It is purpose-built for QUA users and provides essential utilities that would otherwise require custom implementation. Install it if you are writing QUA programs; skip it if you do not use Quantum Machines hardware.
Install
qualang-tools on PyPI
Before you install
Low friction install with a pure-Python wheel. Actively maintained with a release 14 days ago. Nine runtime dependencies including numpy, scipy, and scikit-learn are all widely-used scientific packages, so environment setup is straightforward.
Requires Python 3.9–3.13. Some optional features (interactive plotting, two-qubit randomized benchmarking) need extras installed separately.
License in practice
BSD-3-Clause is permissive and imposes minimal restrictions on use or modification. You can use this package in commercial or proprietary projects without licensing obligations.
Quickstart
pip install qualang-tools
from qualang_tools.loops import from_array
import numpy as np
freq_array = np.linspace(1, 2, 11)
loop_values = from_array(freq_array)
Verify before relying
- Whether qm-qua (the core QUA runtime dependency) is freely available or requires a commercial license or hardware access.
- Whether all nine runtime dependencies are automatically installed or if some are optional.
- Performance characteristics when handling large datasets or complex waveforms.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release <=3.13,>=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 9 packagesattrsgrpclibmatplotlibnumpypackagingqm-quascikit-learnscipyxarray |
| Maintenance | Actively maintained 14 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 121,982 / month, #11,965 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9 |
Evidence: qualang_tools-0.23.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “QUA programming tools”
- qualang-toolsProvides a comprehensive toolkit for writing QUA programs, including…
- qm-quaQM-QUA is a Python SDK that implements QUA, a pulse-level language…
- qm-octaveSDK for controlling Quantum Machine's Octave hardware using QUA,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also attoworld · broadbean · qm-qua · qm-octave · qiskit-experiments · cirq-google · cirq · cirq-core · cirq-web · cirq-aqt