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

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.0.16-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.16-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.16-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.16.tar.gz.

File metadata

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

File hashes

Hashes for hugr_qir-0.0.16.tar.gz
Algorithm Hash digest
SHA256 5ace92a938c92c28a4e85b612770fae814cdff8307a086af5656d05689c466f9
MD5 87dc57e45ec39a8022be02afce3f8f8b
BLAKE2b-256 832031e03697d91711336984a791deb128d88575656cc991f05ce3e1aef43675

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.16-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8067d0629a6625711cfdf95b87c33828751970c21a52d479317dc67549256c17
MD5 274b6d68ee74cc16de5aff843309fd35
BLAKE2b-256 95933109977064cd03c9ba2a3a15aa0048d594d70bba9ba723e68876e140a89c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.16-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 115020b28682aa7e6e0a5da7a6f46fb7217a8fc5264225ba5dc19688e325f422
MD5 d03413a9a6deccc33d0bc5846e023885
BLAKE2b-256 5b5b55230fdbcb4ef89e5778ae00ac8a9a97e61f42b8c06eecab726d96a1713f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.16-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a0f90330631e9fe92a6347333865716202180c8201e28f3d83aebfbbc081fb38
MD5 3d78ab1fbe61d8eb696327afae016bb7
BLAKE2b-256 7429ad48aa3d076092ffbd6585b5fbcad6b0209c7072753285b19f24e681331a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hugr_qir-0.0.16-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 692825e504a5610c3f5e30036773f0126ad203644687866368dab3a923728ece
MD5 d23bfb2c989cdff0d5ae3396b550b5d4
BLAKE2b-256 4ecf9d4c6d9bcad6d4b432deb591e5d1626599a0982a0890d1242962023e6938

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