mqt.qfr


Namemqt.qfr JSON
Version 1.11.1 PyPI version JSON
download
home_page
SummaryA tool for Quantum Functionality Representation
upload_time2023-06-12 11:08:16
maintainer
docs_urlNone
author
requires_python>=3.7
licenseMIT License Copyright (c) 2021 Hartwig Bauer, Lukas Burgholzer, Thomas Grurl, Stefan Hillmich, Robert Wille Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords mqt quantum computing design automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI](https://img.shields.io/pypi/v/mqt.qfr?logo=pypi&style=plastic)](https://pypi.org/project/mqt.qfr/)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/cda-tum/qfr/ci.yml?branch=main&logo=github&style=plastic)](https://github.com/cda-tum/qfr/actions?query=workflow%3A%22CI%22)
[![Codecov branch](https://img.shields.io/codecov/c/github/cda-tum/qfr/master?label=codecov&logo=codecov&style=plastic)](https://codecov.io/gh/cda-tum/qfr)
![GitHub](https://img.shields.io/github/license/cda-tum/qfr?style=plastic)
[![arXiv](https://img.shields.io/static/v1?label=arXiv&message=2103.08281&color=inactive&style=plastic)](https://arxiv.org/abs/2103.08281)

# MQT QFR - A Library for Quantum Functionality Representation Written in C++

A library for the representation of quantum functionality by the [Institute for Integrated Circuits](http://iic.jku.at/eda/) at the [Johannes Kepler University Linz](https://jku.at).
If you have any questions feel free to contact us using [iic-quantum@jku.at](mailto:iic-quantum@jku.at) or by creating an issue on [GitHub](https://github.com/cda-tum/qfr/issues).

## Efficient Construction of Functional Representations for Quantum Algorithms

The QFR library provides the means for constructing the functionality of a given quantum circuit using [decision diagrams](https://iic.jku.at/eda/research/quantum_dd) in the form of the `mqt.qfr` Python package. It includes a traditional,
sequential approach (`qfr.ConstructionMethod.sequential`) and the efficient, recursive method proposed in [[1]](https://arxiv.org/abs/2103.08281) (`qfr.ConstructionMethod.recursive`).

[[1]](https://arxiv.org/abs/2103.08281) L. Burgholzer, R. Raymond, I. Sengupta, and R. Wille. **"Efficient Construction of Functional Representations for Quantum Algorithms"**. [arXiv:2103.08281](https://arxiv.org/abs/2103.08281), 2021

In order to make the library as easy to use as possible (without compilation), we provide pre-built wheels for most common platforms (64-bit Linux, MacOS, Windows). These can be installed using

```bash
pip install mqt.qfr
```

However, in order to get the best performance out of the QFR, it is recommended to build it locally from the source distribution (see [system requirements](#system-requirements)) via

```bash
pip install mqt.qfr --no-binary mqt.qfr
```

This enables platform specific compiler optimizations that cannot be enabled on portable wheels.

Once installed, in Python, the functionality of a given circuit (provided, e.g., as Qiskit QuantumCircuit) can be constructed with:

```python
from mqt import qfr
from qiskit import QuantumCircuit

# create your quantum circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)

# construct the functionality of the circuit
results = qfr.construct(qc)

# print the results
print(results)
```

The `construct` function additionally provides the options `store_decision_diagram` and `store_matrix` that allow to store the resulting decision diagram or matrix, respectively. Note that storing the resulting matrix takes considerable amounts of memory in comparison to the typical memory footprint incurred by the corresponding decision diagram. At least `2^(2n+1)*sizeof(float)` byte are required for storing the matrix representing an n-qubit quantum circuit.

Special routines are available for constructing the functionality of the Quantum Fourier Transform (`construct_qft(nqubits, ...)`) or Grover's algorithm (`construct_grover(nqubits, seed, ...)`). For details on the method employed for Grover's search we refer to [[1, Section 4.2]](https://arxiv.org/abs/2103.08281).

## MQT Toolset

The QFR library is the backbone of the quantum software tools in:

- [MQT DDSIM](https://github.com/cda-tum/ddsim): a decision diagram-based simulator for quantum circuits.
- [MQT QMAP](https://github.com/cda-tum/qmap): a tool for mapping/compiling quantum circuits to real quantum architectures.
- [MQT QCEC](https://github.com/cda-tum/qcec): a decision diagram-based equivalence checking tool for quantum circuits.
- [MQT DDVis](http://github.com/cda-tum/ddvis): a visualization tool for how decision diagrams are used in simulation and verification.
  - You can find an online instance of this tool at http://iic.jku.at/eda/research/quantum_dd/tool/

It acts as an intermediate representation and provides the facilitites to

- **Obtain intermediate representations from circuit descriptions.**

  Currently available file formats are:

  - `OpenQASM` (e.g. used by [Qiskit](https://github.com/Qiskit/qiskit))
  - `Real` (e.g. from [RevLib](http://revlib.org))
  - `GRCS` Google Random Circuit Sampling Benchmarks (see [GRCS](https://github.com/sboixo/GRCS))
  - `TFC` (e.g. from [Reversible Logic Synthesis Benchmarks Page](http://webhome.cs.uvic.ca/~dmaslov/mach-read.html))
  - `QC` (e.g. from [Feynman](https://github.com/meamy/feynman))

  Importing a circuit from a file in either of those formats is done via:

  ```c++
  std::string filename = "PATH_TO_FILE";
  qc::QuantumComputation qc(filename);
  ```

  or by calling

  ```c++
  qc.import(filename);
  ```

  which first resets the `qc` object before importing the new file.

- **Generate circuit representations for important quantum algorithms.**

  Currently available algorithms are:

  - Entanglement

    ```c++
    dd::QubitCount n = 2;
    qc::Entanglement entanglement(n); // generates bell circuit
    ```

    Generates the circuit for preparing an _n_ qubit GHZ state. Primarily used as a simple test case.

  - Bernstein-Vazirani

    ```c++
    unsigned long long hiddenInteger = 16777215ull;
    qc::BernsteinVazirani bv(hiddenInteger); // generates Bernstein-Vazirani circuit for given hiddenInteger
    ```

    Generates the circuit for the Berstein-Vazirani algorithm using the provided _hiddenInteger_

  - Quantum Fourier Transform (QFT)

    ```c++
    dd::QubitCount n = 3;
    qc::QFT qft(n); // generates the QFT circuit for n qubits
    ```

    Generates the circuit for the _n_ qubit Quantum Fourier Transform.

  - Grover's search algorithm

    ```c++
    dd::QubitCount n = 2;
    qc::Grover grover(n); // generates Grover's algorithm for a random n-bit oracle
    ```

    The algorithm performs ~ π/4 √2ⁿ Grover iterations. An optional `unsigned int` parameter controls the _seed_ of the random number generation for the oracle generation.

  - (Iterative) Quantum Phase Estimation
    ```c++
    dd::QubitCount n = 3;
    bool exact = true; // whether to generate an exactly representable phase or not
    qc::QPE qpe(n, exact);
    qc::IQPE iqpe(n, exact);
    ```
    Generates a random bitstring of length `n` (`n+1` in the inexact case) and constructs the corresponding (iterative) Quantum Phase Estimation algorithm using _n+1_ qubits. Alternatively, a specific `phase` and `precision` might be
    passed to the constructor.

- **Generate circuit descriptions from intermediate representations.**

  The library also supports the output of circuits in various formats by calling

  ```c++
  std::string filename = "PATH_TO_DESTINATION_FILE.qasm";
  qc.dump(filename);
  ```

  Currently available file formats are:

  - `OpenQASM` (.qasm)

## Development

### System Requirements

Building (and running) is continuously tested under Linux, MacOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/virtual-environments). However, the implementation should be compatible
with any current C++ compiler supporting C++17 and a minimum CMake version of 3.19.

_Disclaimer_: We noticed some issues when compiling with Microsoft's `MSVC` compiler toolchain. If you are developing under Windows, consider using the `clang` compiler toolchain. A detailed description of how to set this up can be
found [here](https://docs.microsoft.com/en-us/cpp/build/clang-support-msbuild?view=msvc-160).

It is recommended (although not required) to have [GraphViz](https://www.graphviz.org) installed for visualization purposes.

The QFR library also provides functionality to represent functionality of quantum circuits in the form of [ZX-diagrams](https://github.com/cda-tum/zx). At this point this feature is only used by [MQT QCEC](https://github.com/cda-tum/qcec) but is going to be extended further in future releases. If you want to use this feature it is recommended (although not strictly necessary) to have [GMP](https://gmplib.org/) installed in your system.

### Configure, Build, and Install

To start off, clone this repository using

```shell
git clone --recurse-submodules -j8 https://github.com/cda-tum/qfr
```

Note the `--recurse-submodules` flag. It is required to also clone all the required submodules. If you happen to forget passing the flag on your initial clone, you can initialize all the submodules by
executing `git submodule update --init --recursive` in the main project directory.

Our projects use CMake as the main build configuration tool. Building a project using CMake is a two-stage process. First, CMake needs to be _configured_ by calling

```shell
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
```

This tells CMake to search the current directory `.` (passed via `-S`) for a _CMakeLists.txt_ file and process it into a directory `build` (passed via `-B`).
The flag `-DCMAKE_BUILD_TYPE=Release` tells CMake to configure a _Release_ build (as opposed to, e.g., a _Debug_ build).

After configuring with CMake, the project can be built by calling

```shell
 cmake --build build --config Release
```

This tries to build the project in the `build` directory (passed via `--build`).
Some operating systems and developer environments explicitly require a configuration to be set, which is why the `--config` flag is also passed to the build command. The flag `--parallel <NUMBER_OF_THREADS>` may be added to trigger a parallel build.

Building the project this way generates

- the core library `libqfr.a` (Unix) / `qfr.lib` (Windows) in the `build/src` folder
- the DD and ZX libraries `libqfr_dd.a` (Unix) / `qfr_dd.lib` (Windows) and `libqfr_zx.a` (Unix) / `qfr_zx.lib` (Windows) in the `build/src/` folder
- test executables `qfr_test`, `qfr_test_dd`, and `qfr_test_zx` containing a small set of unit tests in the `build/test` folder

You can link against the library built by this project in other CMake project using the `MQT::qfr` target (or any of the other targets `MQT::qfr_dd` and `MQT::qfr_zx`).

### Extending the Python Package

To extend the Python package you can locally install the package in edit mode, so that changes in the Python code are instantly available.
The following example assumes you have a [virtual environment](https://docs.python.org/3/library/venv.html) set up and activated.

```commandline
(venv) $ pip install cmake
(venv) $ pip install --editable .
```

If you change parts of the C++ code, you have to run the second line to make the changes visible in Python.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "mqt.qfr",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "MQT,quantum computing,design automation",
    "author": "",
    "author_email": "Lukas Burgholzer <lukas.burgholzer@jku.at>",
    "download_url": "https://files.pythonhosted.org/packages/34/28/79bd0367602e38d364a9f1060a0503a7a102379411006755ba39565cc9d9/mqt.qfr-1.11.1.tar.gz",
    "platform": null,
    "description": "[![PyPI](https://img.shields.io/pypi/v/mqt.qfr?logo=pypi&style=plastic)](https://pypi.org/project/mqt.qfr/)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/cda-tum/qfr/ci.yml?branch=main&logo=github&style=plastic)](https://github.com/cda-tum/qfr/actions?query=workflow%3A%22CI%22)\n[![Codecov branch](https://img.shields.io/codecov/c/github/cda-tum/qfr/master?label=codecov&logo=codecov&style=plastic)](https://codecov.io/gh/cda-tum/qfr)\n![GitHub](https://img.shields.io/github/license/cda-tum/qfr?style=plastic)\n[![arXiv](https://img.shields.io/static/v1?label=arXiv&message=2103.08281&color=inactive&style=plastic)](https://arxiv.org/abs/2103.08281)\n\n# MQT QFR - A Library for Quantum Functionality Representation Written in C++\n\nA library for the representation of quantum functionality by the [Institute for Integrated Circuits](http://iic.jku.at/eda/) at the [Johannes Kepler University Linz](https://jku.at).\nIf you have any questions feel free to contact us using [iic-quantum@jku.at](mailto:iic-quantum@jku.at) or by creating an issue on [GitHub](https://github.com/cda-tum/qfr/issues).\n\n## Efficient Construction of Functional Representations for Quantum Algorithms\n\nThe QFR library provides the means for constructing the functionality of a given quantum circuit using [decision diagrams](https://iic.jku.at/eda/research/quantum_dd) in the form of the `mqt.qfr` Python package. It includes a traditional,\nsequential approach (`qfr.ConstructionMethod.sequential`) and the efficient, recursive method proposed in [[1]](https://arxiv.org/abs/2103.08281) (`qfr.ConstructionMethod.recursive`).\n\n[[1]](https://arxiv.org/abs/2103.08281) L. Burgholzer, R. Raymond, I. Sengupta, and R. Wille. **\"Efficient Construction of Functional Representations for Quantum Algorithms\"**. [arXiv:2103.08281](https://arxiv.org/abs/2103.08281), 2021\n\nIn order to make the library as easy to use as possible (without compilation), we provide pre-built wheels for most common platforms (64-bit Linux, MacOS, Windows). These can be installed using\n\n```bash\npip install mqt.qfr\n```\n\nHowever, in order to get the best performance out of the QFR, it is recommended to build it locally from the source distribution (see [system requirements](#system-requirements)) via\n\n```bash\npip install mqt.qfr --no-binary mqt.qfr\n```\n\nThis enables platform specific compiler optimizations that cannot be enabled on portable wheels.\n\nOnce installed, in Python, the functionality of a given circuit (provided, e.g., as Qiskit QuantumCircuit) can be constructed with:\n\n```python\nfrom mqt import qfr\nfrom qiskit import QuantumCircuit\n\n# create your quantum circuit\nqc = QuantumCircuit(2)\nqc.h(0)\nqc.cx(0, 1)\n\n# construct the functionality of the circuit\nresults = qfr.construct(qc)\n\n# print the results\nprint(results)\n```\n\nThe `construct` function additionally provides the options `store_decision_diagram` and `store_matrix` that allow to store the resulting decision diagram or matrix, respectively. Note that storing the resulting matrix takes considerable amounts of memory in comparison to the typical memory footprint incurred by the corresponding decision diagram. At least `2^(2n+1)*sizeof(float)` byte are required for storing the matrix representing an n-qubit quantum circuit.\n\nSpecial routines are available for constructing the functionality of the Quantum Fourier Transform (`construct_qft(nqubits, ...)`) or Grover's algorithm (`construct_grover(nqubits, seed, ...)`). For details on the method employed for Grover's search we refer to [[1, Section 4.2]](https://arxiv.org/abs/2103.08281).\n\n## MQT Toolset\n\nThe QFR library is the backbone of the quantum software tools in:\n\n- [MQT DDSIM](https://github.com/cda-tum/ddsim): a decision diagram-based simulator for quantum circuits.\n- [MQT QMAP](https://github.com/cda-tum/qmap): a tool for mapping/compiling quantum circuits to real quantum architectures.\n- [MQT QCEC](https://github.com/cda-tum/qcec): a decision diagram-based equivalence checking tool for quantum circuits.\n- [MQT DDVis](http://github.com/cda-tum/ddvis): a visualization tool for how decision diagrams are used in simulation and verification.\n  - You can find an online instance of this tool at http://iic.jku.at/eda/research/quantum_dd/tool/\n\nIt acts as an intermediate representation and provides the facilitites to\n\n- **Obtain intermediate representations from circuit descriptions.**\n\n  Currently available file formats are:\n\n  - `OpenQASM` (e.g. used by [Qiskit](https://github.com/Qiskit/qiskit))\n  - `Real` (e.g. from [RevLib](http://revlib.org))\n  - `GRCS` Google Random Circuit Sampling Benchmarks (see [GRCS](https://github.com/sboixo/GRCS))\n  - `TFC` (e.g. from [Reversible Logic Synthesis Benchmarks Page](http://webhome.cs.uvic.ca/~dmaslov/mach-read.html))\n  - `QC` (e.g. from [Feynman](https://github.com/meamy/feynman))\n\n  Importing a circuit from a file in either of those formats is done via:\n\n  ```c++\n  std::string filename = \"PATH_TO_FILE\";\n  qc::QuantumComputation qc(filename);\n  ```\n\n  or by calling\n\n  ```c++\n  qc.import(filename);\n  ```\n\n  which first resets the `qc` object before importing the new file.\n\n- **Generate circuit representations for important quantum algorithms.**\n\n  Currently available algorithms are:\n\n  - Entanglement\n\n    ```c++\n    dd::QubitCount n = 2;\n    qc::Entanglement entanglement(n); // generates bell circuit\n    ```\n\n    Generates the circuit for preparing an _n_ qubit GHZ state. Primarily used as a simple test case.\n\n  - Bernstein-Vazirani\n\n    ```c++\n    unsigned long long hiddenInteger = 16777215ull;\n    qc::BernsteinVazirani bv(hiddenInteger); // generates Bernstein-Vazirani circuit for given hiddenInteger\n    ```\n\n    Generates the circuit for the Berstein-Vazirani algorithm using the provided _hiddenInteger_\n\n  - Quantum Fourier Transform (QFT)\n\n    ```c++\n    dd::QubitCount n = 3;\n    qc::QFT qft(n); // generates the QFT circuit for n qubits\n    ```\n\n    Generates the circuit for the _n_ qubit Quantum Fourier Transform.\n\n  - Grover's search algorithm\n\n    ```c++\n    dd::QubitCount n = 2;\n    qc::Grover grover(n); // generates Grover's algorithm for a random n-bit oracle\n    ```\n\n    The algorithm performs ~ &#960;/4 &#8730;2&#8319; Grover iterations. An optional `unsigned int` parameter controls the _seed_ of the random number generation for the oracle generation.\n\n  - (Iterative) Quantum Phase Estimation\n    ```c++\n    dd::QubitCount n = 3;\n    bool exact = true; // whether to generate an exactly representable phase or not\n    qc::QPE qpe(n, exact);\n    qc::IQPE iqpe(n, exact);\n    ```\n    Generates a random bitstring of length `n` (`n+1` in the inexact case) and constructs the corresponding (iterative) Quantum Phase Estimation algorithm using _n+1_ qubits. Alternatively, a specific `phase` and `precision` might be\n    passed to the constructor.\n\n- **Generate circuit descriptions from intermediate representations.**\n\n  The library also supports the output of circuits in various formats by calling\n\n  ```c++\n  std::string filename = \"PATH_TO_DESTINATION_FILE.qasm\";\n  qc.dump(filename);\n  ```\n\n  Currently available file formats are:\n\n  - `OpenQASM` (.qasm)\n\n## Development\n\n### System Requirements\n\nBuilding (and running) is continuously tested under Linux, MacOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/virtual-environments). However, the implementation should be compatible\nwith any current C++ compiler supporting C++17 and a minimum CMake version of 3.19.\n\n_Disclaimer_: We noticed some issues when compiling with Microsoft's `MSVC` compiler toolchain. If you are developing under Windows, consider using the `clang` compiler toolchain. A detailed description of how to set this up can be\nfound [here](https://docs.microsoft.com/en-us/cpp/build/clang-support-msbuild?view=msvc-160).\n\nIt is recommended (although not required) to have [GraphViz](https://www.graphviz.org) installed for visualization purposes.\n\nThe QFR library also provides functionality to represent functionality of quantum circuits in the form of [ZX-diagrams](https://github.com/cda-tum/zx). At this point this feature is only used by [MQT QCEC](https://github.com/cda-tum/qcec) but is going to be extended further in future releases. If you want to use this feature it is recommended (although not strictly necessary) to have [GMP](https://gmplib.org/) installed in your system.\n\n### Configure, Build, and Install\n\nTo start off, clone this repository using\n\n```shell\ngit clone --recurse-submodules -j8 https://github.com/cda-tum/qfr\n```\n\nNote the `--recurse-submodules` flag. It is required to also clone all the required submodules. If you happen to forget passing the flag on your initial clone, you can initialize all the submodules by\nexecuting `git submodule update --init --recursive` in the main project directory.\n\nOur projects use CMake as the main build configuration tool. Building a project using CMake is a two-stage process. First, CMake needs to be _configured_ by calling\n\n```shell\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Release\n```\n\nThis tells CMake to search the current directory `.` (passed via `-S`) for a _CMakeLists.txt_ file and process it into a directory `build` (passed via `-B`).\nThe flag `-DCMAKE_BUILD_TYPE=Release` tells CMake to configure a _Release_ build (as opposed to, e.g., a _Debug_ build).\n\nAfter configuring with CMake, the project can be built by calling\n\n```shell\n cmake --build build --config Release\n```\n\nThis tries to build the project in the `build` directory (passed via `--build`).\nSome operating systems and developer environments explicitly require a configuration to be set, which is why the `--config` flag is also passed to the build command. The flag `--parallel <NUMBER_OF_THREADS>` may be added to trigger a parallel build.\n\nBuilding the project this way generates\n\n- the core library `libqfr.a` (Unix) / `qfr.lib` (Windows) in the `build/src` folder\n- the DD and ZX libraries `libqfr_dd.a` (Unix) / `qfr_dd.lib` (Windows) and `libqfr_zx.a` (Unix) / `qfr_zx.lib` (Windows) in the `build/src/` folder\n- test executables `qfr_test`, `qfr_test_dd`, and `qfr_test_zx` containing a small set of unit tests in the `build/test` folder\n\nYou can link against the library built by this project in other CMake project using the `MQT::qfr` target (or any of the other targets `MQT::qfr_dd` and `MQT::qfr_zx`).\n\n### Extending the Python Package\n\nTo extend the Python package you can locally install the package in edit mode, so that changes in the Python code are instantly available.\nThe following example assumes you have a [virtual environment](https://docs.python.org/3/library/venv.html) set up and activated.\n\n```commandline\n(venv) $ pip install cmake\n(venv) $ pip install --editable .\n```\n\nIf you change parts of the C++ code, you have to run the second line to make the changes visible in Python.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2021 Hartwig Bauer, Lukas Burgholzer, Thomas Grurl, Stefan Hillmich, Robert Wille  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "A tool for Quantum Functionality Representation",
    "version": "1.11.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/cda-tum/qfr/issues",
        "Discussions": "https://github.com/cda-tum/qfr/discussions",
        "Homepage": "https://github.com/cda-tum/qfr"
    },
    "split_keywords": [
        "mqt",
        "quantum computing",
        "design automation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35706e57b6a2afe4319efd375884d3df635bf832f34436f352ec5e8178697121",
                "md5": "f5b82cb6c680571d87e95d5470bee9bf",
                "sha256": "756d5ec0aa1967a5be1bfe401b878386664690eb95e5f55838b9b765542621ec"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp310-cp310-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f5b82cb6c680571d87e95d5470bee9bf",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 698279,
            "upload_time": "2023-06-12T11:07:36",
            "upload_time_iso_8601": "2023-06-12T11:07:36.248586Z",
            "url": "https://files.pythonhosted.org/packages/35/70/6e57b6a2afe4319efd375884d3df635bf832f34436f352ec5e8178697121/mqt.qfr-1.11.1-cp310-cp310-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ecde69261d10321b1e7975070ee3902d2a9ea6091e68d81b42a59bde5201d502",
                "md5": "702f4428a7ee1dacd472497f2b6a6a5c",
                "sha256": "d6ad2c28ad3a15a7c96132d5a710743f926046b23a4018cf31188df89c2c68ee"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "702f4428a7ee1dacd472497f2b6a6a5c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 414845,
            "upload_time": "2023-06-12T11:07:37",
            "upload_time_iso_8601": "2023-06-12T11:07:37.890885Z",
            "url": "https://files.pythonhosted.org/packages/ec/de/69261d10321b1e7975070ee3902d2a9ea6091e68d81b42a59bde5201d502/mqt.qfr-1.11.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c92a4ae699455f6db1eb71ef10e7fa6b3a146de83657093205079bf092db5ac",
                "md5": "035e2bd6739e1766061b940518fc1eb4",
                "sha256": "ec403e390f3fec64570ae9b798140b9af5539d996c7c95e845032c0242024004"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "035e2bd6739e1766061b940518fc1eb4",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 466252,
            "upload_time": "2023-06-12T11:07:39",
            "upload_time_iso_8601": "2023-06-12T11:07:39.807133Z",
            "url": "https://files.pythonhosted.org/packages/0c/92/a4ae699455f6db1eb71ef10e7fa6b3a146de83657093205079bf092db5ac/mqt.qfr-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cf50413aea354f6c908724ea1ec4820d20a68a9ef6d39199340ba555881f597f",
                "md5": "fa4e8e56464f2e5e5f27807ffd64e0ee",
                "sha256": "dbcf1b554e1876b03447b845c34efce5b37dd9daba42c9328d8821f0ee5cb4a9"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fa4e8e56464f2e5e5f27807ffd64e0ee",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 973186,
            "upload_time": "2023-06-12T11:07:42",
            "upload_time_iso_8601": "2023-06-12T11:07:42.144204Z",
            "url": "https://files.pythonhosted.org/packages/cf/50/413aea354f6c908724ea1ec4820d20a68a9ef6d39199340ba555881f597f/mqt.qfr-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d63ef1d1b01e955d546d64479a3c00d39aa65cb469d3c7878b4227c66e25d19",
                "md5": "2a57c20780e170b4add6c6157b444fe5",
                "sha256": "703546119c0d6b7ee0dbd3059a5e97c7d98c96046c6556c3c32c669e09b2275d"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2a57c20780e170b4add6c6157b444fe5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 392714,
            "upload_time": "2023-06-12T11:07:43",
            "upload_time_iso_8601": "2023-06-12T11:07:43.907461Z",
            "url": "https://files.pythonhosted.org/packages/6d/63/ef1d1b01e955d546d64479a3c00d39aa65cb469d3c7878b4227c66e25d19/mqt.qfr-1.11.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "159848c34ac432e10f62b95a9982c0bc436c444ece83934dcd92e1ba0d79300c",
                "md5": "a5ada244a05c49ba4eb752532a5f216a",
                "sha256": "8ff0c36242a170d2e5d69628b51e3431bc6d6a6a7d1d82ed87fc9f4bc49f7953"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp311-cp311-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a5ada244a05c49ba4eb752532a5f216a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 699429,
            "upload_time": "2023-06-12T11:07:45",
            "upload_time_iso_8601": "2023-06-12T11:07:45.921000Z",
            "url": "https://files.pythonhosted.org/packages/15/98/48c34ac432e10f62b95a9982c0bc436c444ece83934dcd92e1ba0d79300c/mqt.qfr-1.11.1-cp311-cp311-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "16c846e382f9bb53f982c9c1a9100a0ed6452474b17265e8396ec57fdf555627",
                "md5": "8e8281a95ffb5868ce0c563f7c4e7dca",
                "sha256": "a42dfcfae2b894e2d7e8f8ce816700b3bf059b829ebfc565594f9a2175843a0d"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8e8281a95ffb5868ce0c563f7c4e7dca",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 416264,
            "upload_time": "2023-06-12T11:07:47",
            "upload_time_iso_8601": "2023-06-12T11:07:47.807461Z",
            "url": "https://files.pythonhosted.org/packages/16/c8/46e382f9bb53f982c9c1a9100a0ed6452474b17265e8396ec57fdf555627/mqt.qfr-1.11.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "983ca74d597c0c985bce514d2bba45853ec9c51c792771b665ff30fa0232d73f",
                "md5": "9698493a4770bdc32a0f1acee392b6cc",
                "sha256": "0cb8836fad82587d26767dd5a4d064322ad10c19f97b12aeed6350f694f08db7"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9698493a4770bdc32a0f1acee392b6cc",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 467369,
            "upload_time": "2023-06-12T11:07:49",
            "upload_time_iso_8601": "2023-06-12T11:07:49.128532Z",
            "url": "https://files.pythonhosted.org/packages/98/3c/a74d597c0c985bce514d2bba45853ec9c51c792771b665ff30fa0232d73f/mqt.qfr-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d05bc67825533c0ab39b021bb1c95170f66d0aea9c7f1a35b5bfa6668d424d05",
                "md5": "fe9ee29208cb092656d30505737c84b3",
                "sha256": "ffd10844d7bed9669de90c4ec31e943d9f9b7fcb5433dc7fcc2cc5954ca72a97"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fe9ee29208cb092656d30505737c84b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 974536,
            "upload_time": "2023-06-12T11:07:50",
            "upload_time_iso_8601": "2023-06-12T11:07:50.893630Z",
            "url": "https://files.pythonhosted.org/packages/d0/5b/c67825533c0ab39b021bb1c95170f66d0aea9c7f1a35b5bfa6668d424d05/mqt.qfr-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae530e75c14a7b07aa03ea23ad1dc4d6b3e31d4ac4b61d33ecaa15f08dfcfca4",
                "md5": "aaf9e4124096c77a998f488c46b25b1f",
                "sha256": "f852ae98c21f5d9e55429fcc7dce784837fe8ef8034c580237cf4ac9efa6292e"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "aaf9e4124096c77a998f488c46b25b1f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 394642,
            "upload_time": "2023-06-12T11:07:52",
            "upload_time_iso_8601": "2023-06-12T11:07:52.189745Z",
            "url": "https://files.pythonhosted.org/packages/ae/53/0e75c14a7b07aa03ea23ad1dc4d6b3e31d4ac4b61d33ecaa15f08dfcfca4/mqt.qfr-1.11.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9ff9328d585070432ca7faf9fe5afef99ec3c96765101c1a969bf6bffd805234",
                "md5": "32be464c2d138fdf9a6407209cbdf2bc",
                "sha256": "c1643489ce69b04f3b92f18e26d53608959608593754c8ae4f2ad20e45cdf2d4"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp37-cp37m-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "32be464c2d138fdf9a6407209cbdf2bc",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 696466,
            "upload_time": "2023-06-12T11:07:53",
            "upload_time_iso_8601": "2023-06-12T11:07:53.612091Z",
            "url": "https://files.pythonhosted.org/packages/9f/f9/328d585070432ca7faf9fe5afef99ec3c96765101c1a969bf6bffd805234/mqt.qfr-1.11.1-cp37-cp37m-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5761ad9d78a8d05553d1ea7fde42bc162ad561b506ee3ba334a63b2099509a66",
                "md5": "4a3ae98913b1f197cb93b33c23b96394",
                "sha256": "8d829189ab81bc5d659ad698015cff569c7b02b1033a838c9a352a554f16ea5c"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4a3ae98913b1f197cb93b33c23b96394",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 469972,
            "upload_time": "2023-06-12T11:07:55",
            "upload_time_iso_8601": "2023-06-12T11:07:55.387545Z",
            "url": "https://files.pythonhosted.org/packages/57/61/ad9d78a8d05553d1ea7fde42bc162ad561b506ee3ba334a63b2099509a66/mqt.qfr-1.11.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae129de2e70ba716284799c5dcabc8628f1374ac0917f5e235705855a0907b56",
                "md5": "bd3cbf7b3efe5d140a5fd077c77d9a2b",
                "sha256": "5b4bbba7ca8040ce9176a0f083ece1b9bdfd279244927a923915a8ae132c0141"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bd3cbf7b3efe5d140a5fd077c77d9a2b",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 976797,
            "upload_time": "2023-06-12T11:07:56",
            "upload_time_iso_8601": "2023-06-12T11:07:56.724316Z",
            "url": "https://files.pythonhosted.org/packages/ae/12/9de2e70ba716284799c5dcabc8628f1374ac0917f5e235705855a0907b56/mqt.qfr-1.11.1-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "08a1d8218f6d76c2cc88bd2716922edfc08d082d9c7c183b5b472b37f31ef2e5",
                "md5": "2008aa5b2bf023b58e6f01aac5fdb78a",
                "sha256": "4663967eb53042abce4f9b3e26b043f72459a409992c143933d179018ae778dd"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2008aa5b2bf023b58e6f01aac5fdb78a",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 406936,
            "upload_time": "2023-06-12T11:07:58",
            "upload_time_iso_8601": "2023-06-12T11:07:58.135465Z",
            "url": "https://files.pythonhosted.org/packages/08/a1/d8218f6d76c2cc88bd2716922edfc08d082d9c7c183b5b472b37f31ef2e5/mqt.qfr-1.11.1-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "baba74d8d62f59de5946ccef5ac6e4c11a4ec1dd917bb2ac65f6148c3cc2c29c",
                "md5": "9ebf649a91e8ac9d0d258fb0bfd77b91",
                "sha256": "28473c82e27dbb930d4e70a86bfae769f1a32b902cb334f61a3327d2cb30aeff"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp38-cp38-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9ebf649a91e8ac9d0d258fb0bfd77b91",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 698147,
            "upload_time": "2023-06-12T11:07:59",
            "upload_time_iso_8601": "2023-06-12T11:07:59.582111Z",
            "url": "https://files.pythonhosted.org/packages/ba/ba/74d8d62f59de5946ccef5ac6e4c11a4ec1dd917bb2ac65f6148c3cc2c29c/mqt.qfr-1.11.1-cp38-cp38-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dded67c48e9f1b68a320920197cf8d7727fcb35ef0b911e4d9a8783f38ff9d09",
                "md5": "56444682450a7f2f14cd00fe66d568a1",
                "sha256": "88a9ac6f511a7496bb4d00b5bc8227ed642ce7db2bb5eb98a2757902cbd0e868"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "56444682450a7f2f14cd00fe66d568a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 414899,
            "upload_time": "2023-06-12T11:08:01",
            "upload_time_iso_8601": "2023-06-12T11:08:01.079620Z",
            "url": "https://files.pythonhosted.org/packages/dd/ed/67c48e9f1b68a320920197cf8d7727fcb35ef0b911e4d9a8783f38ff9d09/mqt.qfr-1.11.1-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e32d0227d976424d50d11408d4cec74b01d586cf386f33bdcab5ff402f114117",
                "md5": "b15c2b560e7ead65ac1645d0ebb3f099",
                "sha256": "f3141c3d0a89278900ab0cc3763f8f69f5a778a823ce27cfe53b9aeee4fc541a"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b15c2b560e7ead65ac1645d0ebb3f099",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 465918,
            "upload_time": "2023-06-12T11:08:02",
            "upload_time_iso_8601": "2023-06-12T11:08:02.695729Z",
            "url": "https://files.pythonhosted.org/packages/e3/2d/0227d976424d50d11408d4cec74b01d586cf386f33bdcab5ff402f114117/mqt.qfr-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b52bd2ad700a366d867520345d84b0d4aeccfa76210a493b851c6927735d3440",
                "md5": "7d87f3df8cfeec0d748b7aea9cbb64b0",
                "sha256": "5568889ce7e4b4465fe439ed947fbacebff5caa3d68c5f99edca86af0e49899c"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d87f3df8cfeec0d748b7aea9cbb64b0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 973083,
            "upload_time": "2023-06-12T11:08:04",
            "upload_time_iso_8601": "2023-06-12T11:08:04.386967Z",
            "url": "https://files.pythonhosted.org/packages/b5/2b/d2ad700a366d867520345d84b0d4aeccfa76210a493b851c6927735d3440/mqt.qfr-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c24001caa43f205d437ade02658dd74b99327e1fce8e76fcf311691e0bdc3517",
                "md5": "3aac268da9433ebf2310fc798e9f3858",
                "sha256": "0adb50a58fd3bff40e20647967598ffc6b23e7fa1b3c0f3f1e805dcf70fe0e2a"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3aac268da9433ebf2310fc798e9f3858",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 392694,
            "upload_time": "2023-06-12T11:08:06",
            "upload_time_iso_8601": "2023-06-12T11:08:06.121483Z",
            "url": "https://files.pythonhosted.org/packages/c2/40/01caa43f205d437ade02658dd74b99327e1fce8e76fcf311691e0bdc3517/mqt.qfr-1.11.1-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "052f7390a9dcb2c7bf12c1aac8a9e92d4caeadfe09b99230eac5371d013c8e46",
                "md5": "14b57b915724df2429b460c986b545fc",
                "sha256": "563aaded41d32a1c8f8d55eb7ddc1ed1c50b542d862d5506555d330c920e9343"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp39-cp39-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "14b57b915724df2429b460c986b545fc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 698319,
            "upload_time": "2023-06-12T11:08:07",
            "upload_time_iso_8601": "2023-06-12T11:08:07.417251Z",
            "url": "https://files.pythonhosted.org/packages/05/2f/7390a9dcb2c7bf12c1aac8a9e92d4caeadfe09b99230eac5371d013c8e46/mqt.qfr-1.11.1-cp39-cp39-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "23f5c8208c18bda45591907f62e7028d23810ec39b1a377ff815736031bccd20",
                "md5": "0a9efb59d8dfb745f92d1c4c87deeb63",
                "sha256": "52921a6d66c705657e46548c5faee3552a03aaa5675cca5b855001f8b8898917"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "0a9efb59d8dfb745f92d1c4c87deeb63",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 415001,
            "upload_time": "2023-06-12T11:08:09",
            "upload_time_iso_8601": "2023-06-12T11:08:09.288031Z",
            "url": "https://files.pythonhosted.org/packages/23/f5/c8208c18bda45591907f62e7028d23810ec39b1a377ff815736031bccd20/mqt.qfr-1.11.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b86f35df3f2eae146cec4b6d3b60023cd04f07be56e5b2cf79a20d8ddbc7c7fb",
                "md5": "7634a0cfeda4db3bf7834061ba338a48",
                "sha256": "47cb9a279a13b38878c91b05d8d20b3a1b72ea351a3565329f5ceabbd1aa42c9"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7634a0cfeda4db3bf7834061ba338a48",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 466346,
            "upload_time": "2023-06-12T11:08:10",
            "upload_time_iso_8601": "2023-06-12T11:08:10.794233Z",
            "url": "https://files.pythonhosted.org/packages/b8/6f/35df3f2eae146cec4b6d3b60023cd04f07be56e5b2cf79a20d8ddbc7c7fb/mqt.qfr-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a4810b9b2ff7d2d60e201299f646003a5cd1db064310adc22d32b748f971e54a",
                "md5": "3570652ff5ff334b0ebf054fb1cb2e3c",
                "sha256": "a7dd7c5f63a43bce84857f23fd4b0e61d5d0e3086f4794843ac79a664057b5aa"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3570652ff5ff334b0ebf054fb1cb2e3c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 973434,
            "upload_time": "2023-06-12T11:08:12",
            "upload_time_iso_8601": "2023-06-12T11:08:12.131158Z",
            "url": "https://files.pythonhosted.org/packages/a4/81/0b9b2ff7d2d60e201299f646003a5cd1db064310adc22d32b748f971e54a/mqt.qfr-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6685620220c10e4785607c699fad9048fc23999e4c78319b3576c97b548afe71",
                "md5": "22b51657c75ba8ad5a9422567a674eb8",
                "sha256": "03c1e7775a520c986d64161a1b306eabdc2cacaef9a557748960ebeee1462228"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "22b51657c75ba8ad5a9422567a674eb8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 392692,
            "upload_time": "2023-06-12T11:08:13",
            "upload_time_iso_8601": "2023-06-12T11:08:13.723527Z",
            "url": "https://files.pythonhosted.org/packages/66/85/620220c10e4785607c699fad9048fc23999e4c78319b3576c97b548afe71/mqt.qfr-1.11.1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "342879bd0367602e38d364a9f1060a0503a7a102379411006755ba39565cc9d9",
                "md5": "294cf0992668cdee41cd13ef7794a20c",
                "sha256": "bd9f333f979a26f2379016addba1281effa95517349713c8230defa074a35685"
            },
            "downloads": -1,
            "filename": "mqt.qfr-1.11.1.tar.gz",
            "has_sig": false,
            "md5_digest": "294cf0992668cdee41cd13ef7794a20c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 8793433,
            "upload_time": "2023-06-12T11:08:16",
            "upload_time_iso_8601": "2023-06-12T11:08:16.024464Z",
            "url": "https://files.pythonhosted.org/packages/34/28/79bd0367602e38d364a9f1060a0503a7a102379411006755ba39565cc9d9/mqt.qfr-1.11.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-12 11:08:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cda-tum",
    "github_project": "qfr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mqt.qfr"
}
        
Elapsed time: 0.07636s