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

Uploaded CPython 3.10+Windows x86-64

hugr_qir-0.0.21rc0-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.21rc0-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.21rc0-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.21rc0.tar.gz.

File metadata

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

File hashes

Hashes for hugr_qir-0.0.21rc0.tar.gz
Algorithm Hash digest
SHA256 e6feb8efba1fdfd66340789f39efcfc719ee46100d930bd29d342525c798fcd9
MD5 482a4423eb3ec2776177cb350e73f68c
BLAKE2b-256 043476dab98c7ec7ed4fa7b4fdb0789a4a9193fc87d2f4e8a72f0362fbb6e263

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.21rc0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.21rc0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 278a7b5e617a692f18e4bbbe1dd6b59b052e0b9b886a77cbc47ec015f5d9b325
MD5 8d234e10e7d085a5308c7d21308985db
BLAKE2b-256 dfaa852f4fbb4fb2d286c450ace8982add7bfa220364b954bc650f62206d093b

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.21rc0-cp310-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.21rc0-cp310-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1e7d0c4528fb543fb2c67d788d8d2c6738b9e68dda7aa9fbae79fa66a067b3a2
MD5 05ef17013295afbd76dd7723a4e9ec0e
BLAKE2b-256 159defd6a41c65f0c84d2d59821955277cc59ece426a153c0bd76f8ad54fc2ac

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.21rc0-cp310-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.21rc0-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8151b1e5b38d15f5d2a74590a3d5d5472a56eea178c891bb3049234e9ad11753
MD5 5ac79c821fe38b83c8238cba83c495a4
BLAKE2b-256 99c822288044c148d10bc10badeda97308b48e054186747a20d72dab890a9531

See more details on using hashes here.

File details

Details for the file hugr_qir-0.0.21rc0-cp310-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for hugr_qir-0.0.21rc0-cp310-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 945f63b81982d0267aa8b9ae7877adf0592f558bf565a3ca9988de3d96c8dc0c
MD5 3c778b486efb61cd688a4910236cdd70
BLAKE2b-256 840f8678b5baaf59e0a5f66ca8b66c33c1c0ff3d2d6f2c3311700407bb3b671d

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