Skip to content

PyQASM 1.2.1

Latest

Choose a tag to compare

@TheGupta2012 TheGupta2012 released this 23 Sep 10:48
· 4 commits to main since this release
cc846a1

Release 1.2.1 (September 23, 2026)

Summary

Added

  • Added support for OpenQASM 2 opaque declarations, which previously failed at parse time and blocked vendor include files such as Quantinuum's hqslib1.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_dir kwarg to loads() and load(), naming the directory custom include statements 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_arguments setting, passed to loads() or set on the module, which prints gate arguments without spaces around *, / and **: rx(pi/2) instead of rx(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 main and manual runs still build all 20 combinations, and published wheels are unaffected. (#419)
  • Raised the isort floor to 9.0.0 in tox.ini and the lint extra. 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-check therefore passed locally and failed in CI. (#419)

New Contributors

Full Changelog: v1.2.0...v1.2.1