qbraid-qir


Nameqbraid-qir JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryqBraid-SDK extension providing support for QIR conversions.
upload_time2024-12-31 10:42:12
maintainerNone
docs_urlNone
authorqBraid Development Team
requires_python>=3.10
licenseGNU General Public License v3.0
keywords qbraid quantum qir llvm cirq openqasm
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img width="full" alt="qbraid-qir-header" src="https://github.com/qBraid/qbraid-qir/assets/46977852/39f921ae-c4bf-442a-b059-6b21abd2ae50">

<p align='center'>
  <a href='https://github.com/qBraid/qbraid-qir/actions/workflows/main.yml'>
      <img src='https://github.com/qBraid/qbraid-qir/actions/workflows/main.yml/badge.svg' alt='CI'>
  </a>
  <a href='https://sdk.qbraid.com/projects/qir/en/latest/?badge=latest'>
    <img src='https://readthedocs.com/projects/qbraid-qbraid-qir/badge/?version=latest&token=7656ee72b7a66dec6d78dda911ce808676dca55c3e86702d5e97191badfdf19c' alt='Documentation Status'/>
  </a>
  <a href="https://codecov.io/gh/qBraid/qbraid-qir">
    <img src="https://codecov.io/gh/qBraid/qbraid-qir/graph/badge.svg?token=GUQ3EN8DGI"/>
  </a>
  <a href="https://pypi.org/project/qbraid-qir/">
    <img src="https://img.shields.io/pypi/v/qbraid-qir.svg?color=blue" alt="PyPI version"/>
  </a>
  <a href="https://pypi.org/project/qbraid-qir/">
    <img src="https://img.shields.io/pypi/pyversions/qbraid-qir.svg?color=blue" alt="PyPI version"/>
  </a>
  <a href='https://www.gnu.org/licenses/gpl-3.0.html'>
    <img src='https://img.shields.io/github/license/qBraid/qbraid-qir.svg' alt='License'/>
  </a>
  <a href='https://discord.gg/TPBU2sa8Et'>
    <img src="https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white" alt="Discord"/>
  </a>
</p>

qBraid-SDK extension providing support for QIR conversions.

[<img src="https://qbraid-static.s3.amazonaws.com/logos/Launch_on_qBraid_white.png" width="150">](https://account.qbraid.com?gitHubUrl=https://github.com/qBraid/qbraid-qir.git)

## Motivation

<img align="right" width="100" alt="qir" src="https://qbraid-static.s3.amazonaws.com/logos/qir.png">

This project aims to make [QIR](https://www.qir-alliance.org/) representations accessible via the qBraid-SDK [transpiler](#architecture-diagram), and by doing so, open the door to language-specific conversions from any and all high-level quantum languages [supported](https://docs.qbraid.com/sdk/user-guide/overview#supported-frontends) by `qbraid`. See QIR Alliance: [why do we need it?](https://www.qir-alliance.org/qir-book/concepts/why-do-we-need.html).

## Installation

qBraid-QIR requires Python 3.10 or greater, and can be installed with pip as follows:

```shell
pip install qbraid-qir
```

### Optional dependencies

qBraid-QIR offers integrations that require extra (optional) dependencies, which can be installed as follows:

For OpenQASM 3 to QIR conversions, install the `qasm3` extra:

```shell
pip install 'qbraid-qir[qasm3]'
```

For Cirq to QIR conversions, install the `cirq` extra:

```shell
pip install 'qbraid-qir[cirq]'
```

### Install from source

You can also install from source by cloning this repository and running a pip install command
in the root directory of the repository:

```shell
git clone https://github.com/qBraid/qbraid-qir.git
cd qbraid-qir
pip install .
```

To include optional dependencies when installing from source, use the same "extras_require" format, e.g.

```shell
pip install '.[qasm3,cirq]'
```

## Check version

You can view the version of qbraid-qir you have installed within a Python shell as follows:

```python
import qbraid_qir

qbraid_qir.__version__
```

## Resources

- [User Guide](https://docs.qbraid.com/qir/user-guide)
- [API Reference](https://sdk.qbraid.com/projects/qir/en/stable/api/qbraid_qir.html)
- [Example Notebooks](https://github.com/qBraid/qbraid-lab-demo/tree/main/qbraid_qir)
- [Docker Containers](docker)

## Usage examples

### OpenQASM 3 conversions

```python
from qbraid_qir import qasm3_to_qir

program = """
OPENQASM 3;
include "stdgates.inc";

qubit[2] q;
bit[2] c;

h q[0];
cx q[0], q[1];

measure q[0] -> c[0];
measure q[1] -> c[1];
"""

module = qasm3_to_qir(program, name="my-program")

ir = str(module)
```

### Cirq conversions

```python
import cirq
from qbraid_qir import cirq_to_qir

q0, q1 = cirq.LineQubit.range(2)

circuit = cirq.Circuit(
  cirq.H(q0),
  cirq.CNOT(q0, q1),
  cirq.measure(q0, q1)
)

module = cirq_to_qir(circuit, name="my-circuit")

ir = str(module)
```

## Architecture diagram

qBraid-SDK transpiler hub-and-spokes [architecture](https://docs.qbraid.com/qir/user-guide/overview#architecture-diagram) with qbraid-qir integration (left) mapped to language specific conversion step in QIR abstraction [layers](https://www.qir-alliance.org/qir-book/concepts/why-do-we-need.html) (right).

<img width="full" alt="architecture" src="https://github.com/qBraid/qbraid-qir/assets/46977852/36644614-2715-4f08-8a8c-8a2e61aebf38">

## Contributing

- Interested in contributing code, or making a PR? See
  [CONTRIBUTING.md](CONTRIBUTING.md)
- For feature requests and bug reports:
  [Submit an issue](https://github.com/qBraid/qbraid-qir/issues)
- For discussions, and specific questions about qBraid-QIR, or
  other topics, [join our discord community](https://discord.gg/TPBU2sa8Et)
- For questions that are more suited for a forum, post to
  [QCSE](https://quantumcomputing.stackexchange.com/)
  with the [`qbraid`](https://quantumcomputing.stackexchange.com/questions/tagged/qbraid) tag.
- By participating, you are expected to uphold our [code of conduct](CODE_OF_CONDUCT).

## Citation

If you use qBraid-QIR in your research, we kindly request that you cite it appropriately.
The BibTeX entry below is aligned with the latest stable release. For the most up-to-date
citation details, please refer to [CITATION.cff](CITATION.cff).

```bibtex
@software{Gupta_qBraid-QIR_Python_package_2024,
  author = {Gupta, Harshit and Jain, Rohan and Kushnir, Samuel and Parakh, Priyansh and Hill, Ryan James},
  license = {GPL-3.0},
  month = aug,
  title = {{qBraid-QIR: Python package for QIR conversions, integrations, and utilities.}},
  url = {https://github.com/qBraid/qbraid-qir},
  version = {0.3.0},
  year = {2024}
}
```

## Acknowledgements

This project was conceived in cooperation with the Quantum Open Source Foundation ([QOSF](https://qosf.org/)).

<a href="https://qosf.org/"><img src="https://qbraid-static.s3.amazonaws.com/logos/qosf.png" width="100px" style="vertical-align: middle;" /></a>

## License

[GNU General Public License v3.0](LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "qbraid-qir",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "qbraid, quantum, qir, llvm, cirq, openqasm",
    "author": "qBraid Development Team",
    "author_email": "contact@qbraid.com",
    "download_url": "https://files.pythonhosted.org/packages/92/2e/715d88f49e0f1dad67857e238829853d10d73d79b4cc3c536c00d5f32176/qbraid_qir-0.3.0.tar.gz",
    "platform": null,
    "description": "<img width=\"full\" alt=\"qbraid-qir-header\" src=\"https://github.com/qBraid/qbraid-qir/assets/46977852/39f921ae-c4bf-442a-b059-6b21abd2ae50\">\n\n<p align='center'>\n  <a href='https://github.com/qBraid/qbraid-qir/actions/workflows/main.yml'>\n      <img src='https://github.com/qBraid/qbraid-qir/actions/workflows/main.yml/badge.svg' alt='CI'>\n  </a>\n  <a href='https://sdk.qbraid.com/projects/qir/en/latest/?badge=latest'>\n    <img src='https://readthedocs.com/projects/qbraid-qbraid-qir/badge/?version=latest&token=7656ee72b7a66dec6d78dda911ce808676dca55c3e86702d5e97191badfdf19c' alt='Documentation Status'/>\n  </a>\n  <a href=\"https://codecov.io/gh/qBraid/qbraid-qir\">\n    <img src=\"https://codecov.io/gh/qBraid/qbraid-qir/graph/badge.svg?token=GUQ3EN8DGI\"/>\n  </a>\n  <a href=\"https://pypi.org/project/qbraid-qir/\">\n    <img src=\"https://img.shields.io/pypi/v/qbraid-qir.svg?color=blue\" alt=\"PyPI version\"/>\n  </a>\n  <a href=\"https://pypi.org/project/qbraid-qir/\">\n    <img src=\"https://img.shields.io/pypi/pyversions/qbraid-qir.svg?color=blue\" alt=\"PyPI version\"/>\n  </a>\n  <a href='https://www.gnu.org/licenses/gpl-3.0.html'>\n    <img src='https://img.shields.io/github/license/qBraid/qbraid-qir.svg' alt='License'/>\n  </a>\n  <a href='https://discord.gg/TPBU2sa8Et'>\n    <img src=\"https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white\" alt=\"Discord\"/>\n  </a>\n</p>\n\nqBraid-SDK extension providing support for QIR conversions.\n\n[<img src=\"https://qbraid-static.s3.amazonaws.com/logos/Launch_on_qBraid_white.png\" width=\"150\">](https://account.qbraid.com?gitHubUrl=https://github.com/qBraid/qbraid-qir.git)\n\n## Motivation\n\n<img align=\"right\" width=\"100\" alt=\"qir\" src=\"https://qbraid-static.s3.amazonaws.com/logos/qir.png\">\n\nThis project aims to make [QIR](https://www.qir-alliance.org/) representations accessible via the qBraid-SDK [transpiler](#architecture-diagram), and by doing so, open the door to language-specific conversions from any and all high-level quantum languages [supported](https://docs.qbraid.com/sdk/user-guide/overview#supported-frontends) by `qbraid`. See QIR Alliance: [why do we need it?](https://www.qir-alliance.org/qir-book/concepts/why-do-we-need.html).\n\n## Installation\n\nqBraid-QIR requires Python 3.10 or greater, and can be installed with pip as follows:\n\n```shell\npip install qbraid-qir\n```\n\n### Optional dependencies\n\nqBraid-QIR offers integrations that require extra (optional) dependencies, which can be installed as follows:\n\nFor OpenQASM 3 to QIR conversions, install the `qasm3` extra:\n\n```shell\npip install 'qbraid-qir[qasm3]'\n```\n\nFor Cirq to QIR conversions, install the `cirq` extra:\n\n```shell\npip install 'qbraid-qir[cirq]'\n```\n\n### Install from source\n\nYou can also install from source by cloning this repository and running a pip install command\nin the root directory of the repository:\n\n```shell\ngit clone https://github.com/qBraid/qbraid-qir.git\ncd qbraid-qir\npip install .\n```\n\nTo include optional dependencies when installing from source, use the same \"extras_require\" format, e.g.\n\n```shell\npip install '.[qasm3,cirq]'\n```\n\n## Check version\n\nYou can view the version of qbraid-qir you have installed within a Python shell as follows:\n\n```python\nimport qbraid_qir\n\nqbraid_qir.__version__\n```\n\n## Resources\n\n- [User Guide](https://docs.qbraid.com/qir/user-guide)\n- [API Reference](https://sdk.qbraid.com/projects/qir/en/stable/api/qbraid_qir.html)\n- [Example Notebooks](https://github.com/qBraid/qbraid-lab-demo/tree/main/qbraid_qir)\n- [Docker Containers](docker)\n\n## Usage examples\n\n### OpenQASM 3 conversions\n\n```python\nfrom qbraid_qir import qasm3_to_qir\n\nprogram = \"\"\"\nOPENQASM 3;\ninclude \"stdgates.inc\";\n\nqubit[2] q;\nbit[2] c;\n\nh q[0];\ncx q[0], q[1];\n\nmeasure q[0] -> c[0];\nmeasure q[1] -> c[1];\n\"\"\"\n\nmodule = qasm3_to_qir(program, name=\"my-program\")\n\nir = str(module)\n```\n\n### Cirq conversions\n\n```python\nimport cirq\nfrom qbraid_qir import cirq_to_qir\n\nq0, q1 = cirq.LineQubit.range(2)\n\ncircuit = cirq.Circuit(\n  cirq.H(q0),\n  cirq.CNOT(q0, q1),\n  cirq.measure(q0, q1)\n)\n\nmodule = cirq_to_qir(circuit, name=\"my-circuit\")\n\nir = str(module)\n```\n\n## Architecture diagram\n\nqBraid-SDK transpiler hub-and-spokes [architecture](https://docs.qbraid.com/qir/user-guide/overview#architecture-diagram) with qbraid-qir integration (left) mapped to language specific conversion step in QIR abstraction [layers](https://www.qir-alliance.org/qir-book/concepts/why-do-we-need.html) (right).\n\n<img width=\"full\" alt=\"architecture\" src=\"https://github.com/qBraid/qbraid-qir/assets/46977852/36644614-2715-4f08-8a8c-8a2e61aebf38\">\n\n## Contributing\n\n- Interested in contributing code, or making a PR? See\n  [CONTRIBUTING.md](CONTRIBUTING.md)\n- For feature requests and bug reports:\n  [Submit an issue](https://github.com/qBraid/qbraid-qir/issues)\n- For discussions, and specific questions about qBraid-QIR, or\n  other topics, [join our discord community](https://discord.gg/TPBU2sa8Et)\n- For questions that are more suited for a forum, post to\n  [QCSE](https://quantumcomputing.stackexchange.com/)\n  with the [`qbraid`](https://quantumcomputing.stackexchange.com/questions/tagged/qbraid) tag.\n- By participating, you are expected to uphold our [code of conduct](CODE_OF_CONDUCT).\n\n## Citation\n\nIf you use qBraid-QIR in your research, we kindly request that you cite it appropriately.\nThe BibTeX entry below is aligned with the latest stable release. For the most up-to-date\ncitation details, please refer to [CITATION.cff](CITATION.cff).\n\n```bibtex\n@software{Gupta_qBraid-QIR_Python_package_2024,\n  author = {Gupta, Harshit and Jain, Rohan and Kushnir, Samuel and Parakh, Priyansh and Hill, Ryan James},\n  license = {GPL-3.0},\n  month = aug,\n  title = {{qBraid-QIR: Python package for QIR conversions, integrations, and utilities.}},\n  url = {https://github.com/qBraid/qbraid-qir},\n  version = {0.3.0},\n  year = {2024}\n}\n```\n\n## Acknowledgements\n\nThis project was conceived in cooperation with the Quantum Open Source Foundation ([QOSF](https://qosf.org/)).\n\n<a href=\"https://qosf.org/\"><img src=\"https://qbraid-static.s3.amazonaws.com/logos/qosf.png\" width=\"100px\" style=\"vertical-align: middle;\" /></a>\n\n## License\n\n[GNU General Public License v3.0](LICENSE)\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3.0",
    "summary": "qBraid-SDK extension providing support for QIR conversions.",
    "version": "0.3.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/qBraid/qbraid-qir/issues",
        "Discord": "https://discord.gg/TPBU2sa8Et",
        "Documentation": "https://docs.qbraid.com/qir",
        "Homepage": "https://github.com/qBraid/qbraid-qir",
        "Launch on Lab": "https://account.qbraid.com/?gitHubUrl=https://github.com/qBraid/qbraid-qir.git"
    },
    "split_keywords": [
        "qbraid",
        " quantum",
        " qir",
        " llvm",
        " cirq",
        " openqasm"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cea15558492829fee6366b368003428ddaf5be8d15422ebf738a453af9e8a28f",
                "md5": "2e886e0d48350aaf93356d6e01302360",
                "sha256": "2a317cfa94608be2836a9dc70310aee869b22fb7cfe0f6b61b55e53b2978efbf"
            },
            "downloads": -1,
            "filename": "qbraid_qir-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2e886e0d48350aaf93356d6e01302360",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 40051,
            "upload_time": "2024-12-31T10:42:10",
            "upload_time_iso_8601": "2024-12-31T10:42:10.696832Z",
            "url": "https://files.pythonhosted.org/packages/ce/a1/5558492829fee6366b368003428ddaf5be8d15422ebf738a453af9e8a28f/qbraid_qir-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "922e715d88f49e0f1dad67857e238829853d10d73d79b4cc3c536c00d5f32176",
                "md5": "d0f54cb769b8fe9039b85fa3304340ca",
                "sha256": "2a5bc27a16139af10b71ebb10c7d9838f7e10875214571265bb5d0c8e8bb2ce0"
            },
            "downloads": -1,
            "filename": "qbraid_qir-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d0f54cb769b8fe9039b85fa3304340ca",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 196759,
            "upload_time": "2024-12-31T10:42:12",
            "upload_time_iso_8601": "2024-12-31T10:42:12.051795Z",
            "url": "https://files.pythonhosted.org/packages/92/2e/715d88f49e0f1dad67857e238829853d10d73d79b4cc3c536c00d5f32176/qbraid_qir-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-31 10:42:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "qBraid",
    "github_project": "qbraid-qir",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "qbraid-qir"
}
        
Elapsed time: 2.18718s