Skip to main content

Quantinuum's tool for converting HUGR to QIR

Project description

hugr-qir

build_status codecov

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

Warning: Not all hugr/guppy programs can be converted to QIR.

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(main.compile().to_bytes())
    # Or to compile a non-main guppy function:
    sys.stdout.buffer.write(guppy_func.compile_function().to_bytes())
  1. Generate the hugr file with:
python guppy_examples/general/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.17.tar.gz (260.9 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.17-cp310-abi3-win_amd64.whl (29.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.0.17-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.17-cp310-abi3-macosx_13_0_x86_64.whl (32.3 MB view details)

Uploaded CPython 3.10+macOS 13.0+ x86-64

hugr_qir-0.0.17-cp310-abi3-macosx_13_0_arm64.whl (29.6 MB view details)

Uploaded CPython 3.10+macOS 13.0+ ARM64

File details

Details for the file hugr_qir-0.0.17.tar.gz.

File metadata

  • Download URL: hugr_qir-0.0.17.tar.gz
  • Upload date:
  • Size: 260.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for hugr_qir-0.0.17.tar.gz
Algorithm Hash digest
SHA256 f3149272acc8bce815022decb211592ec16694722764fc97328b61029fb320de
MD5 d1f1890b85e743c47c6c3d7f78d3981f
BLAKE2b-256 259a93831995bd552908ecbcaeadcc87aed3e319ca0b3b10b4e028ffe67bfce9

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.17-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.17-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9fa6a43183e8b14790980724eaa2e96fc9a53284b3b16ffc7d4499797782e0cb
MD5 6f4fb3018e72d9df9566f0e4bf4f032c
BLAKE2b-256 668adc17629078129df013cb9227e124e631f1cf7ec8304325ec66eac2697e17

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.17-cp310-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.17-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6b1fa0e8af6d48c6a51e19a125d31dbccf32f574562b819d4203953191b98edd
MD5 7d5b47d51fc4bfa363e732a6fc81a2a7
BLAKE2b-256 29a828ddbebd4fa6da8032bbb8f2109898acc86995bc8f8f08862db798925bd7

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.17-cp310-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.17-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 23c6f50d4fe5ffe75975ba903d5166e79c09c4beb9b8910f20f2258072bea67a
MD5 54f65983f732b37739c04d6da29f72f0
BLAKE2b-256 1f7bb8a98cf91a5f9eb0b607f91811480e212f8d5c63b5e867a3fab3140102b1

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.17-cp310-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.17-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 72960ae3c3d0bdbefa24b8c63189ffd6375c04d3e8c9b2051eff7e44d87c82ff
MD5 d676241b821b43da4f3bda698785b16f
BLAKE2b-256 39cfcdafc6384f846984aacd4b16ecc9d3212ebfae9ae2a2afb007d753311931

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