Skip to main content

Quantinuum's tool for converting HUGR to QIR

Project description

hugr-qir

WARNING: this is a beta version, still under development and not all hugr/guppy programs can be converted

build_status codecov

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

Installation

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

Usage

Python

Use the function hugr_to_qir from the hugr_to_qir module to convert hugr to qir. By default, some basic validity checks will be run on the generated QIR. These checks can be turned off by passing validate_qir = False.

You can find an example notebook at examples/submit-guppy-h1-h2-via-qir.ipynb showing the conversion and the submission to H1/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(guppy.compile(main).package.to_bytes())
  1. Generate the hugr file with:
python guppy_examples/quantum-classical-1.py > test-guppy.hugr

Development

#️⃣ Setting up the development environment

The easiest way to setup the development environment is to use the provided devenv.nix file. This will setup 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:

pytest

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

pytest --snapshot-update

License

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

Project details


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.0.9rc2.tar.gz (191.6 kB 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.0.9rc2-cp310-abi3-win_amd64.whl (29.6 MB view details)

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.0.9rc2-cp310-abi3-manylinux_2_34_x86_64.whl (34.2 MB view details)

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

hugr_qir-0.0.9rc2-cp310-abi3-macosx_13_0_x86_64.whl (32.6 MB view details)

Uploaded CPython 3.10+macOS 13.0+ x86-64

hugr_qir-0.0.9rc2-cp310-abi3-macosx_13_0_arm64.whl (29.8 MB view details)

Uploaded CPython 3.10+macOS 13.0+ ARM64

File details

Details for the file hugr_qir-0.0.9rc2.tar.gz.

File metadata

  • Download URL: hugr_qir-0.0.9rc2.tar.gz
  • Upload date:
  • Size: 191.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.3

File hashes

Hashes for hugr_qir-0.0.9rc2.tar.gz
Algorithm Hash digest
SHA256 55de31e11f5c943b18e49e36e3cf7c2681c9dc94207bfd1bf3a868d9b831b491
MD5 6ae2fb634628c2eb0bf7f44c8d4e4a4a
BLAKE2b-256 8e1e5d7652a8c27d35df14e1e010ca29c43750336662f177a1c65395271c51a0

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.9rc2-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.9rc2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f4f42734b8ff2bdbe7e946b8e87232f09b1e4798730b373711299804efa288ce
MD5 266f3da7a5277e21c783bc4791b5a102
BLAKE2b-256 839a8ded5e46ef7b5b0b4ca0ea8ec5a20ecec991a390ae400346afd289d4482b

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.9rc2-cp310-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.9rc2-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2dc467d714c9ccf6d35c7ce922851bf0c8ca559cf0e708f2817ebb3b80baad68
MD5 b567790151108f63e1773de6e1c77ac9
BLAKE2b-256 baea6405fe5d44f25dcfd0e81d522078b1420d9d17e9b8de088dc1ca1de26c84

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.9rc2-cp310-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.9rc2-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6fc080d1270681a6135518706445bf96bd5dca8b769e40b6aec09e183f62f3a6
MD5 8ea4f9bc5bf8cfdf9ef2f72bc1d43be4
BLAKE2b-256 a37961ed3541d59e004bc235f2906dd1f5007b1bdd87911f728d27fb192b457d

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.9rc2-cp310-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.9rc2-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 3cc794ed98fec892ddc741d034f25cdde00064cbdda97c6ee9512019c3aa6308
MD5 d74da990915c36f1df01ae6b370d6f0e
BLAKE2b-256 cf932629ffa6206011bac8875c6ce482e807ed5c51318a9df731e2ccb896236d

See more details on using hashes here.

Supported by

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