openpulse
Reference OpenPulse AST in Python
What it is and what it does
OpenPulse is a Python reference implementation of the OpenPulse grammar specification for quantum computing. It provides an Abstract Syntax Tree (AST) and parser for pulse-level calibration definitions in OpenQASM 3, specifically handling the `cal` and `defcal` body syntax. The package reuses classical types and statements from openqasm3 and introduces pulse-specific types: `port`, `frame`, and `waveform`. It is structured as a companion to openqasm3, with an AST module for node definitions, a parser module for syntax analysis, and the ability to reuse openqasm3's visitor module for traversal.
The package is intended for quantum computing researchers and developers working with pulse-level control and calibration of quantum hardware. It sits at the intersection of quantum software development and low-level hardware control, enabling users to parse and manipulate pulse definitions programmatically.
Use it for:
- Parse OpenQASM 3 calibration files containing pulse definitions for quantum hardware control.
- Build tools that analyze or transform pulse-level quantum circuits and calibration data.
- Develop quantum compiler backends that need to handle pulse grammar and generate calibration code.
- Create validation or linting tools for OpenQASM 3 pulse definitions in quantum software pipelines.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
OpenPulse parses and represents pulse grammar for quantum computing calibration definitions, providing AST nodes and a parser for OpenQASM 3's `cal` and `defcal` bodies.
Yes, if you are working with OpenQASM 3 pulse-level calibration definitions. The package has low install friction, permissive licensing, and no known vulnerabilities. However, note that maintenance is aging—verify that the version meets your needs and check the repository for any recent fixes before relying on it in production.
Install
openpulse on PyPI
pip
pip install openpulseuv
uv add openpulsepoetry
poetry add openpulseInstalling openpulse
Before you install
Low friction—pure Python wheel with three lightweight runtime dependencies. Maintenance is aging: last release was in 2024-10-01 and the repository shows minimal recent activity, though it remains unarchived.
License in practice
Apache 2.0 is permissive; you may use, modify, and distribute this package freely in commercial and private projects, provided you include a copy of the license and note any changes.
Quickstart
pip install openpulse
from openpulse import ast, parser
# Parse a pulse definition string
code = "cal { ... }" # OpenQASM 3 calibration block
result = parser.parse(code)
Requires openqasm3 and antlr4-python3-runtime as runtime dependencies; Python version compatibility is unspecified in metadata.
Verify before relying
- Whether the package is actively maintained or in long-term stable maintenance mode despite the aging status.
- Python version compatibility details, since requires_python is unspecified in the metadata.
- Whether parser.parse() is the correct API or if a different entry point is needed for typical usage.
Package facts
| License | Apache 2.0 Software License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — antlr4-python3-runtime, openqasm3, importlib-metadata |
| Maintenance | aging — 682 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 205,188/month — #9,592 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: openpulse-1.0.1-py3-none-any.whl
Keywords: openqasm, quantum, openpulse
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
openqasm3Provides a reference abstract syntax tree (AST)…
permissive · top 15,000 on PyPI
oqpyOQpy generates OpenQASM 3 and OpenPulse…
permissive · top 15,000 on PyPI
broadbeanBroadbean composes and manipulates pulse…
permissive · top 15,000 on PyPI
qm-quaQM-QUA is a Python SDK that implements QUA, a…
permissive · top 15,000 on PyPI
cirq-googleProvides access to Google's Quantum Computing…
permissive · top 15,000 on PyPI
qiskit-qasm3-importConverts OpenQASM 3 programs (as strings) into…
permissive · top 15,000 on PyPI
qm-octaveSDK for controlling Quantum Machine's Octave…
permissive · top 15,000 on PyPI
qualang-toolsProvides a comprehensive toolkit for writing…
permissive · top 15,000 on PyPI
tree-sitter-goProvides a Go language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-zigProvides a tree-sitter grammar for parsing Zig…
permissive · top 5,000 on PyPI