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.

[!NOTE] Not all Guppy/HUGR programs can be converted to QIR.

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.3.0rc1

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.3.0rc1
File Size Uploaded
hugr_qir-0.3.0rc1.tar.gz 1.5 MB Details

Built distributions (wheels)

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

Total release size: 113.8 MB

Release files / hugr_qir-0.3.0rc1.tar.gz

Download URL hugr_qir-0.3.0rc1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
49294487acb8b77011b72c2d52c3a3512d3b39d600a4c4b9221d031a99267312
BLAKE2b-256 checksum
How to use checksums
de71d1a6ba2481d440ac654271c0dcb233d4fff219efb0904d260072de42a81b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.3.0rc1-cp310-abi3-win_amd64.whl

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

Release files / hugr_qir-0.3.0rc1-cp310-abi3-manylinux_2_34_x86_64.whl

Download URL hugr_qir-0.3.0rc1-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
9230515dbc37a74ff87c7c2cb26e74fba6a30edcd3ae50013e2d948c5bb6048b
BLAKE2b-256 checksum
How to use checksums
ef0bda5f1f9ebb309e3212e09f1e60b77a7654efd129a543296de1e7dfaef8af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.3.0rc1-cp310-abi3-macosx_13_0_x86_64.whl

Download URL hugr_qir-0.3.0rc1-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
ecf1427ee02170ac1e8cd96cfbb489e6f132746847b182950b8e8a6c35dfaae0
BLAKE2b-256 checksum
How to use checksums
6f8d652e4f39faa35199a14565d4fcd72c4a4dca7759b71f2ec39a519b8fbd52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / hugr_qir-0.3.0rc1-cp310-abi3-macosx_13_0_arm64.whl

Download URL hugr_qir-0.3.0rc1-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
0f37713d2cd981e417f608c40fefd5d9c74e94ecfce233f2ca0d196844282044
BLAKE2b-256 checksum
How to use checksums
0a689d2c7df75b6a7afe042e0f51ea60115d1e5557deda3e856f7210262bdf94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

0.3.0

5 release files

This release

0.3.0rc1 This release

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