Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

hugr-qir

build_status codecov

A tool for converting Hierarchical Unified Graph Representation (HUGR, pronounced hugger) formatted quantum programs into QIR format.

Documentation

Project documentation lives in docs/ and can be viewed online here.

To build the documentation locally:

uv run --group docs sphinx-build -M html docs docs/_build

Then open docs/_build/html/index.html in a browser.

Installation

You can install from pypi via pip install hugr-qir.

Usage

Python

Use hugr_to_qir to convert a HUGR package or serialized HUGR bytes into QIR.

from hugr_qir.hugr_to_qir import hugr_to_qir
from hugr_qir.output import OutputFormat

qir = hugr_to_qir(
    hugr_package,
    validate_qir=False,
    output_format=OutputFormat.LLVM_IR,
)

By default, basic validity checks are run on the generated QIR. These can be disabled by passing validate_qir=False.

You can find an example notebook at examples/submit-guppy-h2-via-qir.ipynb showing the conversion and the submission to Quantinuum System Model H2.

CLI

You can use the available CLI after installing the python package.

This will generate qir for a given hugr file:

hugr-qir test-file.hugr

Run hugr-qir --help to see the available options.

If you want to generate a HUGR file from Guppy, you can do this in two steps:

  1. Add this to the end of your guppy file:

    if __name__ == "__main__":
        sys.stdout.buffer.write(main.compile().to_bytes())
        # Or to compile a non-main guppy function:
        sys.stdout.buffer.write(guppy_func.compile_function().to_bytes())
    
  2. Generate the hugr file with:

    python guppy_examples/general/quantum-classical-1.py > test-guppy.hugr
    

See docs/guppy-for-h-series/support-matrix.md for the current Guppylang support matrix and caveats.

Development

Setting up the development environment

The easiest way to set up the development environment is to use the provided devenv.nix file. This will set up a development shell with all the required dependencies.

To use this, you will need to install devenv. Once you have it running, open a shell with:

devenv shell

All the required dependencies should be available. You can automate loading the shell by setting up direnv.

Run tests

You can run the rust test with:

cargo test

You can run the Python test with:

uv run pytest -n auto

You can type-check the Python sources with:

uv run ty check

You can run the Python formatter and linter with:

uv run ruff format --check python guppy_examples
uv run ruff check python guppy_examples

You can run the configured Git hooks with:

uvx prek run --all-files

If you want to update the snapshots you can do that via:

uv run pytest --snapshot-update

License

This project is licensed under Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).

Metadata

Release files for hugr-qir 0.4.0rc0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hugr-qir 0.4.0rc0
File Size Uploaded
hugr_qir-0.4.0rc0.tar.gz 1.6 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for hugr-qir 0.4.0rc0
File
hugr_qir-0.4.0rc0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
hugr_qir-0.4.0rc0-cp310-abi3-manylinux_2_34_x86_64.whl CPython 3.10 abi3 Linux glibc 2.34+ x86-64 Details
hugr_qir-0.4.0rc0-cp310-abi3-macosx_13_0_x86_64.whl CPython 3.10 abi3 macOS 13.0+ x86-64 Details
hugr_qir-0.4.0rc0-cp310-abi3-macosx_13_0_arm64.whl CPython 3.10 abi3 macOS 13.0+ ARM64 Details

Total release size: 113.9 MB

Release files / hugr_qir-0.4.0rc0.tar.gz

Download URL hugr_qir-0.4.0rc0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
aaa3fb5cd375aab6632bf61cbfd65d7f0b7a273ab4bfb0384b17d6ffae2ce6f5
BLAKE2b-256 checksum
How to use checksums
e5a2d52a3c8b94c11932b761596544cd6ace705ec328ac5a220da373fdccf33e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.4.0rc0-cp310-abi3-win_amd64.whl

Download URL hugr_qir-0.4.0rc0-cp310-abi3-win_amd64.whl
Size 25.1 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
aced3771d6081d836d7b67ca375b187ea0cd0e371c0d86ec367d8ff7c314f3b6
BLAKE2b-256 checksum
How to use checksums
c2dd3932ebb04629c327491b162ea31534f30b037beb5ab449ef1b38ca6e684b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.4.0rc0-cp310-abi3-manylinux_2_34_x86_64.whl

Download URL hugr_qir-0.4.0rc0-cp310-abi3-manylinux_2_34_x86_64.whl
Size 35.3 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64 abi3
SHA-256 checksum
How to use checksums
c0f2e97cec5c179e2eb3587822c0adf65e127d33d5a99907a74abea7a55bee66
BLAKE2b-256 checksum
How to use checksums
ff6baa060ad3e1efbc0bb2cd35acf79d022efb79ce46cfecdd90196cbe666913
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.4.0rc0-cp310-abi3-macosx_13_0_x86_64.whl

Download URL hugr_qir-0.4.0rc0-cp310-abi3-macosx_13_0_x86_64.whl
Size 26.7 MB
Tags CPython 3.10 abi3 macOS 13.0+ x86-64
SHA-256 checksum
How to use checksums
0bdfd23d8ba4e366bc3e8d60081d77e44d8b9475b1408132eed5cd6a26624513
BLAKE2b-256 checksum
How to use checksums
e1204d1c10cd01a76db99663dc4abc4f9a639515bf348f2f60a9c080a85d6f60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.4.0rc0-cp310-abi3-macosx_13_0_arm64.whl

Download URL hugr_qir-0.4.0rc0-cp310-abi3-macosx_13_0_arm64.whl
Size 25.2 MB
Tags CPython 3.10 abi3 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
66f5202b899a2e8d9f45b5fcf90f9b4f442c40e7a90f9de5fa6dcf053208b7da
BLAKE2b-256 checksum
How to use checksums
bea815d3f363545392d24d2d0dea015ec14bbd9482825c6a10ec33949a81955d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

This release

0.4.0rc0 This release

5 release files

0.3.0

5 release files

0.2.0

5 release files

0.1.2

5 release files

0.1.1

5 release files

0.1.0

5 release files

0.0.25

5 release files

0.0.24

5 release files

0.0.20

5 release files

0.0.19

5 release files

0.0.18

5 release files

0.0.16

5 release files

0.0.14

5 release files

0.0.13

5 release files

0.0.9

5 release files

0.0.8

5 release files

0.0.7

5 release files

0.0.6

5 release files

0.0.5

5 release files

0.0.4

5 release files

0.0.3

5 release files

0.0.2

5 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page