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.20.tar.gz (268.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.20-cp310-abi3-win_amd64.whl (29.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.0.20-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.20-cp310-abi3-macosx_13_0_x86_64.whl (32.2 MB view details)

Uploaded CPython 3.10+macOS 13.0+ x86-64

hugr_qir-0.0.20-cp310-abi3-macosx_13_0_arm64.whl (29.5 MB view details)

Uploaded CPython 3.10+macOS 13.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for hugr_qir-0.0.20.tar.gz
Algorithm Hash digest
SHA256 d0dbe466f62a6b4bdcff6938911fa0739edb24625ee5d4082b982ae78b4df15e
MD5 00bec474c99433edb42594c7560eb999
BLAKE2b-256 628e7b28d7bed984f91557789a2e356ebd8a3bd35baeba7bcd2add13e099b910

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.20-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2d43b4aeb279ad71e6b06a960eec89b3007c7c09bc302cfd15558004fb9ea2fc
MD5 303bde41a31ae70432aa9b79cd683bce
BLAKE2b-256 dfe0cadc0bdf9310ada9172f9075a0f7278211f44cb7c6fa9b6b75f21852c8b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.20-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1c7d49406b834d1778d073722d814212a4d8e3c7305eb80e56da684c58ffab53
MD5 e430933a81474dfc83bc82da0554868f
BLAKE2b-256 93620c35df1574aede9f14a22e7cb960d5c10383a7d955b3d2adeffadfd66032

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.20-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 214c0d0c6df663eff030772b73ba7f5597863369956b4b2a87aca92bf0538938
MD5 5a0e890d5c45fdb6eb9c63f780070b33
BLAKE2b-256 8b49545561095c680191a14c089bacbbef2f8940fb4785e8026fed01a593b697

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.20-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 372c1ce634bd218dcef89438599fcadfdb82a28987b91d16be94d05aaaa67dba
MD5 a20436891622fb62452e97f0abf1a182
BLAKE2b-256 06ad62ed13250a6767e349d746af7d6b5da062ef7d2952841ddc17b782b2c84b

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