Skip to main content

pytket-qirpass

This module provides a method to optimize QIR using pytket, and a method to convert QIR to pytket for simple circuits.

Installation

Python 3.10, 3.11, 3.12 or 3.13 is required.

To install from PyPI:

pip install pytket-qirpass

Usage

Optimizing QIR with apply_qirpass

The function apply_qirpass takes as input

  • some QIR bitcode
  • a pytket compilation pass
  • a target gateset

and outputs some new QIR bitcode, where the pass has been applied to the basic blocks in the input program, followed by a rebase to the target gateset.

For example:

from pytket_qirpass import apply_qirpass
from pytket.circuit import OpType
from pytket.passes import FullPeepholeOptimise

qir_out = apply_qirpass(
    qir_bitcode=qir_in,
    comp_pass=FullPeepholeOptimise(allow_swaps=False),
    target_1q_gates={OpType.Rx, OpType.Rz},
    target_2q_gates={OpType.ZZPhase},
)

Both the input and the output are Python bytes objects.

Provided the pass preserves the circuit semantics, apply_qirpass preserves the QIR semantics.

Converting QIR to pytket with qir_to_pytket

The function qir_to_pytket takes as input some QIR bitcode and outputs a pytket circuit.

For example:

from pytket_qirpass import qir_to_pytket

circ = qir_to_pytket(qir_bitcode=qir_in)

The program represented by the bitcode must consist of a single basic block comprised of quantum operations, i.e. __quantum__qis__* instructions; any __quantum__rt__* instructions are accepted but ignored.

Metadata

Release files for pytket-qirpass 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytket-qirpass 0.10.0
File Size Uploaded
pytket_qirpass-0.10.0.tar.gz 282.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytket-qirpass 0.10.0
File Interpreter ABI Platform
pytket_qirpass-0.10.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 292.9 kB

Release files / pytket_qirpass-0.10.0.tar.gz

Download URL pytket_qirpass-0.10.0.tar.gz
Size 282.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8d66164d628a84a6346de2ae1b2c67aea877eabe8f4fa0237b55797b9580e664
BLAKE2b-256 checksum
How to use checksums
a73496c5306b5f709f9968b21299747522865154ad24b927b8582844be703b3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.3

Release files / pytket_qirpass-0.10.0-py2.py3-none-any.whl

Download URL pytket_qirpass-0.10.0-py2.py3-none-any.whl
Size 10.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
607a14d889d38c3941d130e7a669096c5760af7fc666888480cabe47dc4b16d0
BLAKE2b-256 checksum
How to use checksums
8c4f35fd467a557627622ebe33fa2639684328add6a5ce7c38cd283e9ee1aa6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.3

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page