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.18.tar.gz (261.5 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.18-cp310-abi3-win_amd64.whl (29.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.0.18-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.18-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.18-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.18.tar.gz.

File metadata

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

File hashes

Hashes for hugr_qir-0.0.18.tar.gz
Algorithm Hash digest
SHA256 d5da0998a891e0a1004efb32b1c59842bbccd1165fa5a653e905c0037f64d1bd
MD5 7146dbd17d77e67da0697aa230cfb084
BLAKE2b-256 d402d3287340b50a1ce3f75cc3a68b25e0fa24c3d1c3b2eb53e2d1be2801b588

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.18-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6907df22c3e6d9ca8c83b380a359df3b023c7e95f4268ad4fca79dae5f68089e
MD5 e990f569f29e97726ce4ebb7ffbab92d
BLAKE2b-256 a072a062d80cb1f72cb647766119e982ec041f64f5e693e5b6ebb19da4b773a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.18-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4e199631e6e269081f3ba8d26a55f130d5f26ecec8faeb02c9c40e99e67adb76
MD5 39ebb739cbfdcfb49a1031ef889305b6
BLAKE2b-256 050a32482a3382fcae3cd562787197784cf558a4bc199e9730f208cd54c35101

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.18-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9b69c2ec3105bf71515e429bb4f2a0d00378c9ad43286ea0bbbd83ade01e3fb4
MD5 c4c22c48c90af711a349b4f2edf131ce
BLAKE2b-256 85d80221bc0f6e8aebc93f698ad21905a470a4615eb60da3c5225fced6d7111b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.18-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 efd4bf1a60e8e86b042eb55c9fbd489bdb8b3853d9b769c551b9292a93a55096
MD5 83ad92c78ccdb54e1da65a4f8a1e2ef0
BLAKE2b-256 12c916733ce6ef575b63cf24c00e9e182001b3c550f7deb1163ffdbc2854a83d

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