pyqasm


Namepyqasm JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryPython toolkit providing an OpenQASM 3 semantic analyzer and utilities for program analysis and compilation.
upload_time2025-09-19 06:33:55
maintainerNone
docs_urlNone
authorqBraid Development Team
requires_python>=3.10
licenseApache 2.0
keywords quantum openqasm symantic-analyzer compiler qbraid
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyqasm

<img align="right" width="100" src="https://qbraid-static.s3.amazonaws.com/pyqasm.svg"/>

[![CI](https://github.com/qBraid/pyqasm/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/qBraid/pyqasm/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/qBraid/pyqasm/graph/badge.svg?token=92YURMR8T8)](https://codecov.io/gh/qBraid/pyqasm)
[![GitHub Pages](https://img.shields.io/github/actions/workflow/status/qBraid/pyqasm/gh-pages.yml?label=docs)](https://sdk.qbraid.com/pyqasm/)
[![PyPI version](https://img.shields.io/pypi/v/pyqasm.svg?color=blue)](https://pypi.org/project/pyqasm/)
[![PyPI Downloads](https://static.pepy.tech/badge/pyqasm)](https://pepy.tech/projects/pyqasm)
[![Python verions](https://img.shields.io/pypi/pyversions/pyqasm.svg?color=blue)](https://pypi.org/project/pyqasm/)
[![License](https://img.shields.io/github/license/qBraid/pyqasm.svg?color=purple)](https://www.apache.org/licenses/LICENSE-2.0)

Python toolkit providing an OpenQASM 3 semantic analyzer and utilities for program analysis and compilation.

[![Env Badge](https://img.shields.io/endpoint?url=https://api.qbraid.com/api/environments/valid?envSlug=pyqasm_l9qauu&label=Launch+on+qBraid&labelColor=lightgrey&logo=rocket&logoSize=auto&style=for-the-badge)](http://account.qbraid.com?gitHubUrl=https://github.com/qBraid/pyqasm.git&envId=pyqasm_l9qauu)

## Motivation
[OpenQASM](https://openqasm.com/) is a powerful language for expressing hybrid quantum-classical programs, but it lacks a comprehensive tool supporting the _full capabilities of the language_. PyQASM aims to fill this gap by building upon the [`openqasm3.parser`](https://github.com/openqasm/openqasm/blob/ast-py/v1.0.1/source/openqasm/openqasm3/parser.py), and providing support for semantic analysis and utilities for program compilation.

## Installation

PyQASM requires Python 3.10 or greater, and can be installed with pip as follows:

```bash
pip install pyqasm
```

### Optional Dependencies
PyQASM offers optional extras such as - 
1. `cli` : command-line interface (CLI) functionality
2. `visualization`: for program visualization 
3. `pulse` : pulse/calibration features (in progress)

To install these features along with the core package, you can use the following command:
```bash
pip install 'pyqasm[cli,pulse,visualization]'
```

You can also install them individually. For example, to install the CLI features only, you can run:
```bash
pip install 'pyqasm[cli]'      
```


### 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:

```bash
git clone https://github.com/qBraid/pyqasm.git
cd pyqasm
pip install .
```

## Check version

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

```python
>>> import pyqasm
>>> pyqasm.__version__
```

## Key Features: Unroll & Validate OpenQASM 3 Programs

PyQASM offers robust support for the **extensive grammar of OpenQASM 3**, including custom gates, subroutines, loops, conditionals, classical control, and more. Its core utilities allow you to **validate** programs for semantic correctness and **unroll** (flatten) all high-level constructs into a linear sequence of basic quantum operations, ready for execution or further compilation.

### Highlights

- **[Comprehensive Grammar Support](src/README.md)**: PyQASM supports the full breadth of OpenQASM 3 operations, and backward compatibility with OpenQASM 2, including:
  - Classical and quantum registers
  - Loops (`for`, `while`)
  - Conditionals (`if`, `else`)
  - Parameterized and custom gates
  - Subroutine inlining
  - Switch statements
  - Classical expressions and assignments
  - Variables and arrays
  - Type casting and conversions
  - Built-in and user-defined constants
  - Quantum-classical interaction (`measurement`, `reset`, etc.)
  - Inclusion of standard libraries (`stdgates.inc`, etc.)

- **[Unrolling](https://docs.qbraid.com/pyqasm/user-guide/examples#inlining-%26-unrolling):**  
  Expands all custom gates, loops, subroutines, branches, etc. into a flat, hardware-ready sequence of instructions.

- **[Validation](https://docs.qbraid.com/pyqasm/user-guide/overview#the-qasmmodule-object):**  
  Performs semantic analysis to ensure programs are correct and conform to the OpenQASM 3 specification.

---

### Example: Unroll and Validate a Complex QASM Program

Below is an example demonstrating PyQASM's efficacy on a non-trivial OpenQASM 3 program. This program uses custom gates, loops, and classical control, and is fully unrolled and validated by PyQASM:

```python
from pyqasm import loads, dumps

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

gate h2 a, b { h a; h b; }
def parity_flip(qubit[4] q) {
    for int i in [0:3] {
        if (i % 2 == 0) {
            x q[i];
        }
    }
}

qubit[4] q;
bit[4] c;

h2 q[0], q[1];
parity_flip(q);

for int i in [0:3] {
    measure q[i] -> c[i];
}
"""

module = loads(qasm)      # Parse and build the program
module.validate()         # Check for semantic errors
module.unroll()           # Flatten all gates, loops, and subroutines

print(dumps(module))      # Output the fully unrolled QASM
```

**Output (fully unrolled QASM):**
```qasm
OPENQASM 3.0;
include "stdgates.inc";
qubit[4] q;
bit[4] c;
h q[0];
h q[1];
x q[0];
x q[2];
c[0] = measure q[0];
c[1] = measure q[1];
c[2] = measure q[2];
c[3] = measure q[3];
```

PyQASM ensures your OpenQASM programs are **semantically correct** and **hardware-ready**, supporting the language's most advanced features with ease.
## Resources

- [API Reference](https://qbraid.github.io/pyqasm/api/pyqasm.html): Developer documentation.
- [Usage Examples](examples): Scripts and Markdown examples demonstrating core functionality.
- [Supported Operations](pyqasm/README.md#supported-operations): OpenQASM language features supported, in progress, and planned for future support.
- [Gate Decompositions](docs/gate_decompositions.md): Detailed decomposition diagrams and explanations for quantum gates.

## Contributing

[![GitHub](https://img.shields.io/badge/issue_tracking-github-black?logo=github)](https://github.com/qBraid/pyqasm/issues)
[![QCSE](https://img.shields.io/badge/QCSE-pyqasm-orange?logo=stackexchange)](https://quantumcomputing.stackexchange.com/questions/tagged/pyqasm)
[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.gg/TPBU2sa8Et)

- 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/pyqasm/issues)
- For discussions, and specific questions about pyqasm, 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 [`pyqasm`](https://quantumcomputing.stackexchange.com/questions/tagged/pyqasm) tag.
- By participating, you are expected to uphold our [code of conduct](CODE_OF_CONDUCT).

## License

[Apache-2.0 License](LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyqasm",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "quantum, openqasm, symantic-analyzer, compiler, qbraid",
    "author": "qBraid Development Team",
    "author_email": "contact@qbraid.com",
    "download_url": "https://files.pythonhosted.org/packages/cb/f5/12402c14b6e9cc531173ccb18e5e0e896db9eda7552b01f608fac54c9b1b/pyqasm-1.0.0.tar.gz",
    "platform": null,
    "description": "# pyqasm\n\n<img align=\"right\" width=\"100\" src=\"https://qbraid-static.s3.amazonaws.com/pyqasm.svg\"/>\n\n[![CI](https://github.com/qBraid/pyqasm/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/qBraid/pyqasm/actions/workflows/main.yml)\n[![codecov](https://codecov.io/gh/qBraid/pyqasm/graph/badge.svg?token=92YURMR8T8)](https://codecov.io/gh/qBraid/pyqasm)\n[![GitHub Pages](https://img.shields.io/github/actions/workflow/status/qBraid/pyqasm/gh-pages.yml?label=docs)](https://sdk.qbraid.com/pyqasm/)\n[![PyPI version](https://img.shields.io/pypi/v/pyqasm.svg?color=blue)](https://pypi.org/project/pyqasm/)\n[![PyPI Downloads](https://static.pepy.tech/badge/pyqasm)](https://pepy.tech/projects/pyqasm)\n[![Python verions](https://img.shields.io/pypi/pyversions/pyqasm.svg?color=blue)](https://pypi.org/project/pyqasm/)\n[![License](https://img.shields.io/github/license/qBraid/pyqasm.svg?color=purple)](https://www.apache.org/licenses/LICENSE-2.0)\n\nPython toolkit providing an OpenQASM 3 semantic analyzer and utilities for program analysis and compilation.\n\n[![Env Badge](https://img.shields.io/endpoint?url=https://api.qbraid.com/api/environments/valid?envSlug=pyqasm_l9qauu&label=Launch+on+qBraid&labelColor=lightgrey&logo=rocket&logoSize=auto&style=for-the-badge)](http://account.qbraid.com?gitHubUrl=https://github.com/qBraid/pyqasm.git&envId=pyqasm_l9qauu)\n\n## Motivation\n[OpenQASM](https://openqasm.com/) is a powerful language for expressing hybrid quantum-classical programs, but it lacks a comprehensive tool supporting the _full capabilities of the language_. PyQASM aims to fill this gap by building upon the [`openqasm3.parser`](https://github.com/openqasm/openqasm/blob/ast-py/v1.0.1/source/openqasm/openqasm3/parser.py), and providing support for semantic analysis and utilities for program compilation.\n\n## Installation\n\nPyQASM requires Python 3.10 or greater, and can be installed with pip as follows:\n\n```bash\npip install pyqasm\n```\n\n### Optional Dependencies\nPyQASM offers optional extras such as - \n1. `cli` : command-line interface (CLI) functionality\n2. `visualization`: for program visualization \n3. `pulse` : pulse/calibration features (in progress)\n\nTo install these features along with the core package, you can use the following command:\n```bash\npip install 'pyqasm[cli,pulse,visualization]'\n```\n\nYou can also install them individually. For example, to install the CLI features only, you can run:\n```bash\npip install 'pyqasm[cli]'      \n```\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```bash\ngit clone https://github.com/qBraid/pyqasm.git\ncd pyqasm\npip install .\n```\n\n## Check version\n\nYou can view the version of pyqasm you have installed within a Python shell as follows:\n\n```python\n>>> import pyqasm\n>>> pyqasm.__version__\n```\n\n## Key Features: Unroll & Validate OpenQASM 3 Programs\n\nPyQASM offers robust support for the **extensive grammar of OpenQASM 3**, including custom gates, subroutines, loops, conditionals, classical control, and more. Its core utilities allow you to **validate** programs for semantic correctness and **unroll** (flatten) all high-level constructs into a linear sequence of basic quantum operations, ready for execution or further compilation.\n\n### Highlights\n\n- **[Comprehensive Grammar Support](src/README.md)**: PyQASM supports the full breadth of OpenQASM 3 operations, and backward compatibility with OpenQASM 2, including:\n  - Classical and quantum registers\n  - Loops (`for`, `while`)\n  - Conditionals (`if`, `else`)\n  - Parameterized and custom gates\n  - Subroutine inlining\n  - Switch statements\n  - Classical expressions and assignments\n  - Variables and arrays\n  - Type casting and conversions\n  - Built-in and user-defined constants\n  - Quantum-classical interaction (`measurement`, `reset`, etc.)\n  - Inclusion of standard libraries (`stdgates.inc`, etc.)\n\n- **[Unrolling](https://docs.qbraid.com/pyqasm/user-guide/examples#inlining-%26-unrolling):**  \n  Expands all custom gates, loops, subroutines, branches, etc. into a flat, hardware-ready sequence of instructions.\n\n- **[Validation](https://docs.qbraid.com/pyqasm/user-guide/overview#the-qasmmodule-object):**  \n  Performs semantic analysis to ensure programs are correct and conform to the OpenQASM 3 specification.\n\n---\n\n### Example: Unroll and Validate a Complex QASM Program\n\nBelow is an example demonstrating PyQASM's efficacy on a non-trivial OpenQASM 3 program. This program uses custom gates, loops, and classical control, and is fully unrolled and validated by PyQASM:\n\n```python\nfrom pyqasm import loads, dumps\n\nqasm = \"\"\"\nOPENQASM 3;\ninclude \"stdgates.inc\";\n\ngate h2 a, b { h a; h b; }\ndef parity_flip(qubit[4] q) {\n    for int i in [0:3] {\n        if (i % 2 == 0) {\n            x q[i];\n        }\n    }\n}\n\nqubit[4] q;\nbit[4] c;\n\nh2 q[0], q[1];\nparity_flip(q);\n\nfor int i in [0:3] {\n    measure q[i] -> c[i];\n}\n\"\"\"\n\nmodule = loads(qasm)      # Parse and build the program\nmodule.validate()         # Check for semantic errors\nmodule.unroll()           # Flatten all gates, loops, and subroutines\n\nprint(dumps(module))      # Output the fully unrolled QASM\n```\n\n**Output (fully unrolled QASM):**\n```qasm\nOPENQASM 3.0;\ninclude \"stdgates.inc\";\nqubit[4] q;\nbit[4] c;\nh q[0];\nh q[1];\nx q[0];\nx q[2];\nc[0] = measure q[0];\nc[1] = measure q[1];\nc[2] = measure q[2];\nc[3] = measure q[3];\n```\n\nPyQASM ensures your OpenQASM programs are **semantically correct** and **hardware-ready**, supporting the language's most advanced features with ease.\n## Resources\n\n- [API Reference](https://qbraid.github.io/pyqasm/api/pyqasm.html): Developer documentation.\n- [Usage Examples](examples): Scripts and Markdown examples demonstrating core functionality.\n- [Supported Operations](pyqasm/README.md#supported-operations): OpenQASM language features supported, in progress, and planned for future support.\n- [Gate Decompositions](docs/gate_decompositions.md): Detailed decomposition diagrams and explanations for quantum gates.\n\n## Contributing\n\n[![GitHub](https://img.shields.io/badge/issue_tracking-github-black?logo=github)](https://github.com/qBraid/pyqasm/issues)\n[![QCSE](https://img.shields.io/badge/QCSE-pyqasm-orange?logo=stackexchange)](https://quantumcomputing.stackexchange.com/questions/tagged/pyqasm)\n[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.gg/TPBU2sa8Et)\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/pyqasm/issues)\n- For discussions, and specific questions about pyqasm, 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 [`pyqasm`](https://quantumcomputing.stackexchange.com/questions/tagged/pyqasm) tag.\n- By participating, you are expected to uphold our [code of conduct](CODE_OF_CONDUCT).\n\n## License\n\n[Apache-2.0 License](LICENSE)\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Python toolkit providing an OpenQASM 3 semantic analyzer and utilities for program analysis and compilation.",
    "version": "1.0.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/qBraid/pyqasm/issues",
        "Source Code": "https://github.com/qBraid/pyqasm"
    },
    "split_keywords": [
        "quantum",
        " openqasm",
        " symantic-analyzer",
        " compiler",
        " qbraid"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f210ab0caf05eedde192f9f3e397fce4eeb8a331fb6317ec64123a14f6b1b398",
                "md5": "c944662b5a13dc1444d9d60a6a3df980",
                "sha256": "ddd590f421f252b054558780ac31ef122a6672231d386d7d600cba2f57fbf740"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c944662b5a13dc1444d9d60a6a3df980",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 224114,
            "upload_time": "2025-09-19T06:33:33",
            "upload_time_iso_8601": "2025-09-19T06:33:33.207528Z",
            "url": "https://files.pythonhosted.org/packages/f2/10/ab0caf05eedde192f9f3e397fce4eeb8a331fb6317ec64123a14f6b1b398/pyqasm-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ec005851d2df58fc6c305e00f3ea21142438dbc46a8b76d8731e1d568cb09d66",
                "md5": "559da397267871ce29a8a2e2be7f4a00",
                "sha256": "dc2e749d30e510eca19e49941c020f310c4c25593dac8dab701ff641867bb419"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "559da397267871ce29a8a2e2be7f4a00",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 216780,
            "upload_time": "2025-09-19T06:33:34",
            "upload_time_iso_8601": "2025-09-19T06:33:34.980904Z",
            "url": "https://files.pythonhosted.org/packages/ec/00/5851d2df58fc6c305e00f3ea21142438dbc46a8b76d8731e1d568cb09d66/pyqasm-1.0.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "72d4a63a7b13121dbbffb5acfa4e0371fff765482e7af62f318ede098cc98414",
                "md5": "324e1fbb5ffa584b48746ebf0a7fa585",
                "sha256": "3de1f9f9456cff473d42b2e7f0300e45acf19feec82def0a6b75735260ce1487"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "324e1fbb5ffa584b48746ebf0a7fa585",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 711831,
            "upload_time": "2025-09-19T06:33:36",
            "upload_time_iso_8601": "2025-09-19T06:33:36.123943Z",
            "url": "https://files.pythonhosted.org/packages/72/d4/a63a7b13121dbbffb5acfa4e0371fff765482e7af62f318ede098cc98414/pyqasm-1.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "69e2a5bb0404ec61ef5b1cae657038a752d4fe6c394dfa477433271c891a57c6",
                "md5": "e87ac22a94f78e9cb0e6335bfc802359",
                "sha256": "2851a77d117c671966ed5e0c4ccaa195df83909de9bb0b937c3a4af8d78da17d"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e87ac22a94f78e9cb0e6335bfc802359",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 210328,
            "upload_time": "2025-09-19T06:33:37",
            "upload_time_iso_8601": "2025-09-19T06:33:37.576459Z",
            "url": "https://files.pythonhosted.org/packages/69/e2/a5bb0404ec61ef5b1cae657038a752d4fe6c394dfa477433271c891a57c6/pyqasm-1.0.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6771a42987a114312edca9a717e19d410b28cc1a5c467c7b18b6ec9af2a020f1",
                "md5": "d73160761d8fbb6499de2c75a209cbe4",
                "sha256": "a76a56da5b85b3db1bdd58f51c30bf83b44d7458802986d0ddf615fbc7537ad4"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d73160761d8fbb6499de2c75a209cbe4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 223526,
            "upload_time": "2025-09-19T06:33:39",
            "upload_time_iso_8601": "2025-09-19T06:33:39.234119Z",
            "url": "https://files.pythonhosted.org/packages/67/71/a42987a114312edca9a717e19d410b28cc1a5c467c7b18b6ec9af2a020f1/pyqasm-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de8d68ca37cf682a623dfbbe03c0be3823fef20ec503835a4ab6f9260213ce05",
                "md5": "50d86e420a7315d3383713bf60d6d331",
                "sha256": "ac9084d4b8256e467f6e6247f47ad28ba92a186108335e6c9bf1c4d2b502d98e"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "50d86e420a7315d3383713bf60d6d331",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 216379,
            "upload_time": "2025-09-19T06:33:41",
            "upload_time_iso_8601": "2025-09-19T06:33:41.398875Z",
            "url": "https://files.pythonhosted.org/packages/de/8d/68ca37cf682a623dfbbe03c0be3823fef20ec503835a4ab6f9260213ce05/pyqasm-1.0.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8819a03cd3dc4b072d68840ea20006f413d90eafe333e0c3d31d8e2affaa5929",
                "md5": "c38b81e41ee257c5ee7f7169a606419f",
                "sha256": "9e6bccda45b42c4172073502f55f470ded617cbdf00c153783468bd7c03bb236"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c38b81e41ee257c5ee7f7169a606419f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 754060,
            "upload_time": "2025-09-19T06:33:42",
            "upload_time_iso_8601": "2025-09-19T06:33:42.653223Z",
            "url": "https://files.pythonhosted.org/packages/88/19/a03cd3dc4b072d68840ea20006f413d90eafe333e0c3d31d8e2affaa5929/pyqasm-1.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d3ea2beafcc52390ef5732d54a916f819784ac78b563f0eb8d2667582eabb1a3",
                "md5": "51b1a26e74e6c7c88a0ecc7e5dbf8a2a",
                "sha256": "141c96afffd70b67ecce574c639e079f9610dc0e45b94323a96f540f3893a723"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "51b1a26e74e6c7c88a0ecc7e5dbf8a2a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 210441,
            "upload_time": "2025-09-19T06:33:44",
            "upload_time_iso_8601": "2025-09-19T06:33:44.416443Z",
            "url": "https://files.pythonhosted.org/packages/d3/ea/2beafcc52390ef5732d54a916f819784ac78b563f0eb8d2667582eabb1a3/pyqasm-1.0.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fd668176191e55a00d74efe8783addec00b6cf83ce4f24fd8217ae37027f5f02",
                "md5": "63df69ec14bc7df1115d50d80d335016",
                "sha256": "c9eb3be5e14544c59ff45ae3177bf82fc3f6063990f456ff919ada9a18fc33dc"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "63df69ec14bc7df1115d50d80d335016",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 223440,
            "upload_time": "2025-09-19T06:33:45",
            "upload_time_iso_8601": "2025-09-19T06:33:45.537618Z",
            "url": "https://files.pythonhosted.org/packages/fd/66/8176191e55a00d74efe8783addec00b6cf83ce4f24fd8217ae37027f5f02/pyqasm-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ae2e39146eef26bebd643e2fc80d718fee347dc9438a56267c4ecc198a28d67e",
                "md5": "5424d13acd99be13fcf3964258173c4f",
                "sha256": "64233fbc56cb33faaacffd219acd5b5e49c9af6271d861d981b1db7a11cd4b71"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5424d13acd99be13fcf3964258173c4f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 216277,
            "upload_time": "2025-09-19T06:33:46",
            "upload_time_iso_8601": "2025-09-19T06:33:46.903640Z",
            "url": "https://files.pythonhosted.org/packages/ae/2e/39146eef26bebd643e2fc80d718fee347dc9438a56267c4ecc198a28d67e/pyqasm-1.0.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1fefa58dad2483a2a0773eff0c2b447f93c1e335eea328dbc5ab2158cb361ef2",
                "md5": "7395f789e832d4f61acee64e58b874f4",
                "sha256": "9cef622c53cf712f8f3c999fc0e3a7edf005c17522617dbde080f9dc850102ac"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7395f789e832d4f61acee64e58b874f4",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 733164,
            "upload_time": "2025-09-19T06:33:48",
            "upload_time_iso_8601": "2025-09-19T06:33:48.469200Z",
            "url": "https://files.pythonhosted.org/packages/1f/ef/a58dad2483a2a0773eff0c2b447f93c1e335eea328dbc5ab2158cb361ef2/pyqasm-1.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a983b5774ca87fdb67c8d6c7b52c6f771a59073a5752bce88b03cd3d0882d0ee",
                "md5": "38bd357da1074e6c9513e858bd6396c8",
                "sha256": "84deef930bd00daba8bd98301f3004e77d3157718bd3fda6c3bd235d0cbc6e9d"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "38bd357da1074e6c9513e858bd6396c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 211028,
            "upload_time": "2025-09-19T06:33:49",
            "upload_time_iso_8601": "2025-09-19T06:33:49.445694Z",
            "url": "https://files.pythonhosted.org/packages/a9/83/b5774ca87fdb67c8d6c7b52c6f771a59073a5752bce88b03cd3d0882d0ee/pyqasm-1.0.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6d7ecf5d9fb9c749bfe6cc4b2ddf0e6a34266db278da8aad9231784a06313c8f",
                "md5": "b8e93ced14c2b38ac736b6cf2b75cb1d",
                "sha256": "6a2047a312980256320b285e9a43176dbf3037a7e384989fb90df823e315273a"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b8e93ced14c2b38ac736b6cf2b75cb1d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 222336,
            "upload_time": "2025-09-19T06:33:50",
            "upload_time_iso_8601": "2025-09-19T06:33:50.497324Z",
            "url": "https://files.pythonhosted.org/packages/6d/7e/cf5d9fb9c749bfe6cc4b2ddf0e6a34266db278da8aad9231784a06313c8f/pyqasm-1.0.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "121fea089318475689c4a28c7bdbfeaeb33cb8c7aaeddc07404aebe47d93eceb",
                "md5": "7edb44ae6ac373c5851b9b2e3a21cc15",
                "sha256": "6eeae5e474dff121fb641a68ece38b115b04719a08091bb89913df880c5c97c2"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7edb44ae6ac373c5851b9b2e3a21cc15",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 215377,
            "upload_time": "2025-09-19T06:33:51",
            "upload_time_iso_8601": "2025-09-19T06:33:51.930190Z",
            "url": "https://files.pythonhosted.org/packages/12/1f/ea089318475689c4a28c7bdbfeaeb33cb8c7aaeddc07404aebe47d93eceb/pyqasm-1.0.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ddf49e623e5afc49cde1815dd8b9fabdccb0374026fd5303f5d8fa55cf32e609",
                "md5": "b01ff659c2cc8cf2159f3a321a399999",
                "sha256": "71a49965e58a51c7cdd72bc48ed168c9eb04ac8a755b46b29fbb8e72c4c9e70e"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b01ff659c2cc8cf2159f3a321a399999",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 729854,
            "upload_time": "2025-09-19T06:33:53",
            "upload_time_iso_8601": "2025-09-19T06:33:53.138653Z",
            "url": "https://files.pythonhosted.org/packages/dd/f4/9e623e5afc49cde1815dd8b9fabdccb0374026fd5303f5d8fa55cf32e609/pyqasm-1.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2893d0891f1f12d11192ada4ff4c639a395c9d6c5bc0ec730741e9ebf239e028",
                "md5": "9cba4e724b4215cff183b565a6693860",
                "sha256": "e3bdcd5ac943effeefd4d9aa636b4f496cb46ab353cd4540c00d5323eaebe514"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9cba4e724b4215cff183b565a6693860",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 210816,
            "upload_time": "2025-09-19T06:33:54",
            "upload_time_iso_8601": "2025-09-19T06:33:54.202874Z",
            "url": "https://files.pythonhosted.org/packages/28/93/d0891f1f12d11192ada4ff4c639a395c9d6c5bc0ec730741e9ebf239e028/pyqasm-1.0.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cbf512402c14b6e9cc531173ccb18e5e0e896db9eda7552b01f608fac54c9b1b",
                "md5": "2e5c0b9ed2cb9bd4342214ab1031d8d7",
                "sha256": "5b7fb7e36496099797d7016b91ee073e9cdd4792a93c65c5ccb370a0cd5b7042"
            },
            "downloads": -1,
            "filename": "pyqasm-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2e5c0b9ed2cb9bd4342214ab1031d8d7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 107451,
            "upload_time": "2025-09-19T06:33:55",
            "upload_time_iso_8601": "2025-09-19T06:33:55.944519Z",
            "url": "https://files.pythonhosted.org/packages/cb/f5/12402c14b6e9cc531173ccb18e5e0e896db9eda7552b01f608fac54c9b1b/pyqasm-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-19 06:33:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "qBraid",
    "github_project": "pyqasm",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "pyqasm"
}
        
Elapsed time: 3.58147s