Skip to main content

ParityOS Qiskit

ParityOS extension adding an interface to Qiskit.

Installation

It is recommended to install this package in a separate Python virtual environment. For example:

# To create a standard Python virtual environment:
python -m venv my_new_venv && source my_new_venv/bin/activate
# Alternatively, to create a Anaconda/Miniconda environment:
conda create --name my_new_conda_env python=<version> && conda activate my_new_conda_env
# or a pyenv environment
pyenv virtualenv <version> my_new_venv && pyenv activate my_new_venv
# or a uv managed environment
uv venv -p <version>

where <version> is a python version and one of [3.11, 3.12, 3.13].

After activating the virtual environment, install via your favorite package manager, e.g.:

# using pip
pip install parityos-qiskit
# using uv
uv pip install parityos-qiskit

Exporter

parityos-qiskit offers an exporter of ParityOS to Qiskit quantum circuits.

from parityos.bits import get_q
from parityos.operators.circuit import Circuit
from parityos.operators.controlled_operator import CNOT
from parityos.operators.elementary_operator import H, Z
from parityos.operators.rotation_operator import RX
from parityos_qiskit.exporter import export_parityos_to_qiskit

# Create circuit qubits.
qubits = [get_q(name) for name in ("a", "b", "c")]

# Create the following circuit as sequence of gates, followed by a measurement of all qubits.
#     ┌───────┐┌───┐┌───┐   ┌─┐
# qa: ┤ Rx(2) ├┤ H ├┤ Z ├───┤M├
#     └───────┘├───┤└┬─┬┘   └╥┘
# qb: ─────────┤ X ├─┤M├─────╫─
#       ┌───┐  └─┬─┘ └╥┘ ┌─┐ ║
# qc: ──┤ H ├────■────╫──┤M├─╫─
#       └───┘         ║  └╥┘ ║
# c: 3/═══════════════╩═══╩══╩═
#                     1   2  0
circuit = Circuit(
    [
        RX(qubits[0], 2),
        H(qubits[0]),
        H(qubits[2]),
        CNOT(qubits[2], qubits[1]),
        Z(qubits[0]),
    ]
).measure_all()

# Export to Qiskit.
# Qiskit qubits are integer labeled. Passing `qubits` explicitly controls how ParityOS qubits are
# mapped to Qiskit qubits.
qiskit_result = export_parityos_to_qiskit(circuit, qubits=reversed(qubits))

print(qiskit_result.circuit.draw("text"))
#        ┌───┐               ┌─┐
# q_0: ──┤ H ├────■──────────┤M├───
#        └───┘  ┌─┴─┐     ┌─┐└╥┘
# q_1: ─────────┤ X ├─────┤M├─╫────
#      ┌───────┐├───┤┌───┐└╥┘ ║ ┌─┐
# q_2: ┤ Rx(2) ├┤ H ├┤ Z ├─╫──╫─┤M├
#      └───────┘└───┘└───┘ ║  ║ └╥┘
# c: 3/════════════════════╩══╩══╩═
#                          1  2  0

print(qiskit_result.qubit_map)  # Maps ParityOS qubits to Qiskit Qubit integer labels
# {Qubit(id='c'): 0, Qubit(id='b'): 1, Qubit(id='a'): 2}

print(qiskit_result.cbit_map)  # Maps ParityOS cbits to Qiskit Clbit integer labels
# {Cbit(id=0): 0, Cbit(id=1): 1, Cbit(id=2): 2}

License

This software package is made available under the 3-Clause BSD License. See License.txt for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parityos_qiskit-0.2.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parityos_qiskit-0.2.0-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file parityos_qiskit-0.2.0.tar.gz.

File metadata

  • Download URL: parityos_qiskit-0.2.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for parityos_qiskit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a3b0ba55064b30e2bcaba94d253d12be9eb627aefd47c248e66f79dbaf29caf0
MD5 0d5ca279612f1107729c8524f432ca25
BLAKE2b-256 ad00d277ab5d34cff2d2fd5bfb552092888599131cfcbddc1f21a7a919b095ab

See more details on using hashes here.

File details

Details for the file parityos_qiskit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: parityos_qiskit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for parityos_qiskit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8b4e0e34f7df99c4f8b5025e602f629dce6c9f6bf09e551caa0981b0f0693791
MD5 715f61faf5df415737b8be2a50036c5c
BLAKE2b-256 40e1c046e357a3c83a1bab7be51e27d6bf081e8acd8806b1ce8c467f12dc9305

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.2

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.1

2 files

0.1.0

2 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