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).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hugr_qir-0.1.3rc1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hugr_qir-0.1.3rc1-cp310-abi3-win_amd64.whl (29.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.1.3rc1-cp310-abi3-manylinux_2_34_x86_64.whl (34.5 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.34+ x86-64

hugr_qir-0.1.3rc1-cp310-abi3-macosx_13_0_x86_64.whl (32.5 MB view details)

Uploaded CPython 3.10+macOS 13.0+ x86-64

hugr_qir-0.1.3rc1-cp310-abi3-macosx_13_0_arm64.whl (29.2 MB view details)

Uploaded CPython 3.10+macOS 13.0+ ARM64

File details

Details for the file hugr_qir-0.1.3rc1.tar.gz.

File metadata

  • Download URL: hugr_qir-0.1.3rc1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for hugr_qir-0.1.3rc1.tar.gz
Algorithm Hash digest
SHA256 ba72f7ce9975fd470257aaedfb89f4064cf39d773979b73d56c7adf0ae36977b
MD5 9f65102d2858bc5c6e72d2d984508240
BLAKE2b-256 12fd50515efff5c0d4b4816516e53060e55659ec092cc66a0303018a061cea2c

See more details on using hashes here.

File details

Details for the file hugr_qir-0.1.3rc1-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.1.3rc1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3fcee86cf179cb356d46544570dac86c9accde7dd550f9dcfb25be514b0906ca
MD5 aee69d17f284653f90bce091529f72cf
BLAKE2b-256 ba34b4a9489a49a592765d1e0d72dd0600a2da6d9ac1ca2a1be2035ba3601aef

See more details on using hashes here.

File details

Details for the file hugr_qir-0.1.3rc1-cp310-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.1.3rc1-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ccc5a3a1161ff29810a112dc40e9babbc29085d61eaf1e5d8403fc9b84549ff5
MD5 d54c0bdbc04969d6558237dae6ee033f
BLAKE2b-256 5a661da02aaeb2a8d4acda3cdf41ebb983e9c5f5aad5c5807ae321f99df7ab14

See more details on using hashes here.

File details

Details for the file hugr_qir-0.1.3rc1-cp310-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.1.3rc1-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7a30b8a98d28baec1a1dba7f55654a929c37b00d3b9928cc2f0ead9beb892293
MD5 8dccb04177e585c217d635dc31824115
BLAKE2b-256 3fb04e4e169817137750925be990139e478adf1fe08203d0b42e77d4ed6c1755

See more details on using hashes here.

File details

Details for the file hugr_qir-0.1.3rc1-cp310-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.1.3rc1-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 1317a34c867c38796f11a2a6827213bebd8d145cb31b9e62ba8dea863293d343
MD5 520af9b9838165479972461d42172721
BLAKE2b-256 948ca03a4d4ac6c28d5fb3b258bc72d29eaf8f21d5861c76140a6edd8dd92123

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.3rc1 This release

5 files

0.1.2

5 files

0.1.1

5 files

0.1.0

5 files

0.0.27

5 files

0.0.26

5 files

0.0.25

5 files

0.0.24

5 files

0.0.22

5 files

0.0.20

5 files

0.0.19

5 files

0.0.18

5 files

0.0.17

5 files

0.0.16

5 files

0.0.14

5 files

0.0.13

5 files

0.0.12

5 files

0.0.11

5 files

0.0.10

5 files

0.0.9

5 files

0.0.8

5 files

0.0.7

5 files

0.0.6

5 files

0.0.5

5 files

0.0.4

5 files

0.0.3

5 files

0.0.2

5 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page