Release 1.2.1 (September 23, 2026)
Summary
Added
- Added support for OpenQASM 2
opaquedeclarations, which previously failed at parse time and blocked vendor include files such as Quantinuum'shqslib1.inc. An opaque gate is treated as a black box: emitted as written, counted as one layer of depth.to_qasm3()rejects such a program. (#370) - Added an
include_dirkwarg toloads()andload(), naming the directory customincludestatements resolve against. A program given as a string could not resolve includes at all, and failed later naming the gate rather than the include. Resolution is opt-in: without the kwarg, no files are read. (#368) - Added a
compact_gate_argumentssetting, passed toloads()or set on the module, which prints gate arguments without spaces around*,/and**:rx(pi/2)instead ofrx(pi / 2). Vendors such as Diraq match rotation angles textually and reject the spaced form. (#427)
Other
- Trimmed the wheel matrix on pull requests, and added a concurrency guard that cancels superseded runs. Every push to an open pull request used to start another full 20-job matrix while the previous one ran to completion. Pull requests now build Linux on every supported Python, plus macOS arm64, macOS x86_64 and Windows on 3.11, cutting macOS jobs from 10 to 2. Pushes to
mainand manual runs still build all 20 combinations, and published wheels are unaffected. (#419) - Raised the isort floor to 9.0.0 in
tox.iniand thelintextra. Both allowed isort 6, which CI never installed, and the two versions demand opposite formatting of a wrapped import that fits on one line.tox -e format-checktherefore passed locally and failed in CI. (#419)
New Contributors
- @kanavsetia made their first contribution in #419
Full Changelog: v1.2.0...v1.2.1