mqt.predictor


Namemqt.predictor JSON
Version 2.0.0 PyPI version JSON
download
home_page
SummaryMQT Predictor - A MQT tool for Determining Good Quantum Circuit Compilation Options
upload_time2023-10-08 20:44:14
maintainer
docs_urlNone
author
requires_python>=3.9
licenseMIT License Copyright (c) 2022 Nils Quetschlich, Lukas Burgholzer, and 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 compilation machine learning prediction
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)
[![CodeCov](https://github.com/cda-tum/mqt-predictor/actions/workflows/coverage.yml/badge.svg)](https://github.com/cda-tum/mqt-predictor/actions/workflows/coverage.yml)
[![Deploy to PyPI](https://github.com/cda-tum/mqt-predictor/actions/workflows/deploy.yml/badge.svg)](https://github.com/cda-tum/mqt-predictor/actions/workflows/deploy.yml)
[![codecov](https://codecov.io/gh/cda-tum/mqt-predictor/branch/main/graph/badge.svg?token=ZL5js1wjrB)](https://codecov.io/gh/cda-tum/mqt-predictor)

<p align="center">
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/cda-tum/mqtpredictor/main/img/mqt_light.png" width="60%">
  <img src="https://raw.githubusercontent.com/cda-tum/mqtpredictor/main/img/mqt_dark.png" width="60%">
</picture>
</p>

# MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing

MQT Predictor is a framework that allows one to automatically select a suitable quantum device for a particular application and provides an optimized compiler for the selected device.
It not only supports end-users in navigating the vast landscape of choices, it also allows to mix-and-match compiler passes from various tools to create optimized compilers that transcend the individual tools.
Evaluations on more than 500 quantum circuits and seven devices have shown that—compared to Qiskit's and TKET's most optimized compilation flows—the MQT Predictor yields circuits with an expected fidelity that is on par with the best possible result that could be achieved by trying out all combinations of devices and compilers and even achieves a similar performance when considering the critical depth as an alternative figure of merit.

Therefore, MQT Predictor tackles this problem from two angles:

1. It provides a method (based on Reinforcement Learning) that produces device-specific quantum circuit compilers by combining compilation passes from various compiler tools and learning optimized sequences of those passes with respect to a customizable figure of merit). This mix-and-match of compiler passes from various tools allows one to eliminate vendor locks and to create optimized compilers that transcend the individual tools.

2. It provides a prediction method (based on Supervised Machine Learning) that, without performing any compilation, automatically predicts the most suitable device for a given application. This completely eliminates the manual and laborious task of determining a suitable target device and guides end-users through the vast landscape of choices without the need for quantum computing expertise.

<p align="center">
<picture>
  <img src="./img/problem.png" width="100%">
</picture>
</p>

In the following, we provide a brief overview of the two approaches.

## Device-specific Quantum Circuit Compiler Using Reinforcement Learning Model

Compilation, fortunately, is not new per-se, since classical compilers have seen a similar trend of an increasing complexity and variety in the past.
To not reinvent the wheel and make use of the decades of classical compiler optimization, quantum compilation is modeled in a similar fashion and classical reinforcement learning is used to predict compilation pass sequences optimizing for the chosen figure of merit.

Through distinct constraints and a unifying interface, the framework supports the combination of techniques
from different compilers and optimization tools in a single compilation flow.
The compilation process is modelled as a Markov Decision Process and takes three inputs:

1. Training circuits
2. The targeted quantum device
3. The figure of merit to optimize for

<p align="center">
<picture>
  <img src="./img/rl.png" width="100%">
</picture>
</p>

The trained reinforcement learning model then acts as a compiler and can be used to compile any quantum circuit for the targeted device.

In this implementation, compilation passes from both IBM's Qiskit and Quantinuum's TKET are utilized for the RL training
of the optimized compiler.
We trained one RL model for each currently supported quantum device:

- OQC Lucy with 8 qubits
- IonQ Harmony with 11 qubits
- IonQ Aria1 with 25 qubits
- IBM Montreal with 27 qubits
- Quantinuum H2 with 32 qubits
- Rigetti Aspen-M2 with 80 qubits
- IBM Washington with 127 qubits

## Automatic Device Selection Using Supervised Machine Learning

A naive approach to select the best quantum device for a given quantum circuit would be to compile it for all devices, e.g., using the trained RL models which act as specialized compilers for supported quantum devices.
Afterwards, the resulting compiled circuits must be evaluated according to some figure of merit to identify the most promising device.
However, doing this for each and every to-be-compiled quantum circuit is practically infeasible since compilation is a time-consuming task.

The MQT Predictor learns from previous compilations of other quantum circuits and models the problem of determining the most promising device for a circuit and figure of merit as a statistical classification task—a task well suited for supervised machine learning.
For that, the framework is trained with a set of quantum circuits and their respective compilation options for all supported devices for a given figure of merit:

<p align="center">
<picture>
  <img src="./img/ml.png" width="100%">
</picture>
</p>

The trained model then acts as a predictor and can be used to predict the most suitable device for a given quantum circuit and figure of merit.

For evaluation of our methodology, seven supervised machine learning classifiers have been used:

- Random Forest
- Gradient Boosting
- Decision Tree
- Nearest Neighbor
- Multilayer Perceptron
- Support Vector Machine
- Naive Bayes

In our exemplary scenario, the Random Forest classifier achieved the best performance.

# The MQT Predictor framework: Automatic device selection and optimized compilation

From a user's perspective, the framework is used as follows:

<p align="center">
<picture>
  <img src="./img/mqt_predictor.png" width="100%">
</picture>
</p>

Any uncompiled quantum circuit can be provided together with the desired figure of merit.
The framework then automatically predicts the most suitable device for the given circuit and figure of merit and compiles the circuit for the predicted device.
The compiled circuit is returned together with the compilation information and the selected device.

# Usage

First, the package must be installed:

```console
(venv) $ pip install mqt.predictor
```

Now a prediction can be made for any `qiskit.QuantumCircuit` object or `qasm` file:

```python
from mqt.predictor import qcompile

compiled_qc, compilation_info, selected_device = qcompile(
    "qasm_file_path_or_QuantumCircuit", figure_of_merit="expected_fidelity"
)
```

Currently available figures of merit are `fidelity` and `critical_depth`.

# Examination of all seven trained classifiers of the ML model

To play around with all the examined models, please use the `notebooks/ml/evaluation.ipynb` Jupyter notebook.

## Adjustment of training data generation process

The adjustment of the following parts is possible:

### Evaluation Metric

To make predictions which compilation options are the best ones for a given quantum circuits, a goodness definition is needed.
In principle, this evaluation metric can be designed to be arbitrarily complex, e.g., factoring in actual costs of executing quantum circuits on the respective platform or availability limitations for certain devices.
However, any suitable evaluation metric should, at least, consider characteristics of the compiled quantum circuit and the respective device.
An exemplary metric could be the overall fidelity of a compiled quantum circuit for its targeted device.

### Generation of Training Data

To train the model, sufficient training data must be provided as qasm files in the `./training_samples_folder`.
We provide the training data used for the pre-trained model.

After the adjustment is finished, the following methods need to be called to generate the training data:

```python
from mqt.predictor import ml

predictor = ml.Predictor()
predictor.generate_compiled_circuits(figure_of_merit="expected_fidelity")
training_data, name_list, scores_list = predictor.generate_trainingdata_from_qasm_files(
    figure_of_merit="expected_fidelity"
)
ml.helper.save_training_data(
    training_data, name_list, scores_list, figure_of_merit="expected_fidelity"
)
```

Now, the Random Forest classifier can be trained:

```python
predictor.train_random_forest_classifier(figure_of_merit="expected_fidelity")
```

Additionally, the raw training data may be extracted and can be used for any machine learning model:

```python
(
    X_train,
    X_test,
    y_train,
    y_test,
    indices_train,
    indices_test,
    names_list,
    scores_list,
) = predictor.get_prepared_training_data(
    save_non_zero_indices=True, figure_of_merit="expected_fidelity"
)
```

# Repository Structure

```
.
├── notebooks/
│ ├── evaluations/
│ │     ├── ...
│ └── example.ipynb
├── src/
│ ├── mqt/
│   └── predictor/
│     ├── calibration_files/
│     ├── ml/
│     │ └── training_data/
│     │     ├── trained_model
│     │     ├── training_circuits
│     │     ├── training_circuits_compiled
│     │     └── training_data_aggregated
│     └── rl/
│          └── training_data/
│              ├── trained_model
│              └── training_circuits
```

# References

The MQT Predictor is based on the following publications:

```bibtex
@INPROCEEDINGS{quetschlich2023prediction,
	AUTHOR    = {N. Quetschlich and L. Burgholzer and R. Wille},
	TITLE     = {{Predicting Good Quantum Circuit Compilation Options}},
	BOOKTITLE = {IEEE International Conference on Quantum Software (QSW)},
	YEAR      = {2023},
}
```

which is also available on arXiv:
[![a](https://img.shields.io/static/v1?label=arXiv&message=2210.08027&color=inactive&style=flat-square)](https://arxiv.org/abs/2210.08027)

```bibtex
@INPROCEEDINGS{quetschlich2023compileroptimization,
  author        = {N. Quetschlich and L. Burgholzer and R. Wille},
  title         = {{Compiler Optimization for Quantum Computing Using Reinforcement Learning}},
  booktitle     = {{Design Automation Conference (DAC)}},
  year          = {2023},
}
```

which is also available on arXiv:
[![a](https://img.shields.io/static/v1?label=arXiv&message=2212.04508&color=inactive&style=flat-square)](https://arxiv.org/abs/2212.04508)

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "mqt.predictor",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "MQT,quantum computing,compilation,machine learning,prediction",
    "author": "",
    "author_email": "Nils Quetschlich <nils.quetschlich@tum.de>, Lukas Burgholzer <lukas.burgholzer@jku.at>",
    "download_url": "https://files.pythonhosted.org/packages/c9/b2/2f73958f39193099fa5e72a6c1d4186ad4a4efa5e23d012f863556b134b8/mqt.predictor-2.0.0.tar.gz",
    "platform": null,
    "description": "[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[![CodeCov](https://github.com/cda-tum/mqt-predictor/actions/workflows/coverage.yml/badge.svg)](https://github.com/cda-tum/mqt-predictor/actions/workflows/coverage.yml)\n[![Deploy to PyPI](https://github.com/cda-tum/mqt-predictor/actions/workflows/deploy.yml/badge.svg)](https://github.com/cda-tum/mqt-predictor/actions/workflows/deploy.yml)\n[![codecov](https://codecov.io/gh/cda-tum/mqt-predictor/branch/main/graph/badge.svg?token=ZL5js1wjrB)](https://codecov.io/gh/cda-tum/mqt-predictor)\n\n<p align=\"center\">\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/cda-tum/mqtpredictor/main/img/mqt_light.png\" width=\"60%\">\n  <img src=\"https://raw.githubusercontent.com/cda-tum/mqtpredictor/main/img/mqt_dark.png\" width=\"60%\">\n</picture>\n</p>\n\n# MQT Predictor: Automatic Device Selection with Device-Specific Circuit Compilation for Quantum Computing\n\nMQT Predictor is a framework that allows one to automatically select a suitable quantum device for a particular application and provides an optimized compiler for the selected device.\nIt not only supports end-users in navigating the vast landscape of choices, it also allows to mix-and-match compiler passes from various tools to create optimized compilers that transcend the individual tools.\nEvaluations on more than 500 quantum circuits and seven devices have shown that\u2014compared to Qiskit's and TKET's most optimized compilation flows\u2014the MQT Predictor yields circuits with an expected fidelity that is on par with the best possible result that could be achieved by trying out all combinations of devices and compilers and even achieves a similar performance when considering the critical depth as an alternative figure of merit.\n\nTherefore, MQT Predictor tackles this problem from two angles:\n\n1. It provides a method (based on Reinforcement Learning) that produces device-specific quantum circuit compilers by combining compilation passes from various compiler tools and learning optimized sequences of those passes with respect to a customizable figure of merit). This mix-and-match of compiler passes from various tools allows one to eliminate vendor locks and to create optimized compilers that transcend the individual tools.\n\n2. It provides a prediction method (based on Supervised Machine Learning) that, without performing any compilation, automatically predicts the most suitable device for a given application. This completely eliminates the manual and laborious task of determining a suitable target device and guides end-users through the vast landscape of choices without the need for quantum computing expertise.\n\n<p align=\"center\">\n<picture>\n  <img src=\"./img/problem.png\" width=\"100%\">\n</picture>\n</p>\n\nIn the following, we provide a brief overview of the two approaches.\n\n## Device-specific Quantum Circuit Compiler Using Reinforcement Learning Model\n\nCompilation, fortunately, is not new per-se, since classical compilers have seen a similar trend of an increasing complexity and variety in the past.\nTo not reinvent the wheel and make use of the decades of classical compiler optimization, quantum compilation is modeled in a similar fashion and classical reinforcement learning is used to predict compilation pass sequences optimizing for the chosen figure of merit.\n\nThrough distinct constraints and a unifying interface, the framework supports the combination of techniques\nfrom different compilers and optimization tools in a single compilation flow.\nThe compilation process is modelled as a Markov Decision Process and takes three inputs:\n\n1. Training circuits\n2. The targeted quantum device\n3. The figure of merit to optimize for\n\n<p align=\"center\">\n<picture>\n  <img src=\"./img/rl.png\" width=\"100%\">\n</picture>\n</p>\n\nThe trained reinforcement learning model then acts as a compiler and can be used to compile any quantum circuit for the targeted device.\n\nIn this implementation, compilation passes from both IBM's Qiskit and Quantinuum's TKET are utilized for the RL training\nof the optimized compiler.\nWe trained one RL model for each currently supported quantum device:\n\n- OQC Lucy with 8 qubits\n- IonQ Harmony with 11 qubits\n- IonQ Aria1 with 25 qubits\n- IBM Montreal with 27 qubits\n- Quantinuum H2 with 32 qubits\n- Rigetti Aspen-M2 with 80 qubits\n- IBM Washington with 127 qubits\n\n## Automatic Device Selection Using Supervised Machine Learning\n\nA naive approach to select the best quantum device for a given quantum circuit would be to compile it for all devices, e.g., using the trained RL models which act as specialized compilers for supported quantum devices.\nAfterwards, the resulting compiled circuits must be evaluated according to some figure of merit to identify the most promising device.\nHowever, doing this for each and every to-be-compiled quantum circuit is practically infeasible since compilation is a time-consuming task.\n\nThe MQT Predictor learns from previous compilations of other quantum circuits and models the problem of determining the most promising device for a circuit and figure of merit as a statistical classification task\u2014a task well suited for supervised machine learning.\nFor that, the framework is trained with a set of quantum circuits and their respective compilation options for all supported devices for a given figure of merit:\n\n<p align=\"center\">\n<picture>\n  <img src=\"./img/ml.png\" width=\"100%\">\n</picture>\n</p>\n\nThe trained model then acts as a predictor and can be used to predict the most suitable device for a given quantum circuit and figure of merit.\n\nFor evaluation of our methodology, seven supervised machine learning classifiers have been used:\n\n- Random Forest\n- Gradient Boosting\n- Decision Tree\n- Nearest Neighbor\n- Multilayer Perceptron\n- Support Vector Machine\n- Naive Bayes\n\nIn our exemplary scenario, the Random Forest classifier achieved the best performance.\n\n# The MQT Predictor framework: Automatic device selection and optimized compilation\n\nFrom a user's perspective, the framework is used as follows:\n\n<p align=\"center\">\n<picture>\n  <img src=\"./img/mqt_predictor.png\" width=\"100%\">\n</picture>\n</p>\n\nAny uncompiled quantum circuit can be provided together with the desired figure of merit.\nThe framework then automatically predicts the most suitable device for the given circuit and figure of merit and compiles the circuit for the predicted device.\nThe compiled circuit is returned together with the compilation information and the selected device.\n\n# Usage\n\nFirst, the package must be installed:\n\n```console\n(venv) $ pip install mqt.predictor\n```\n\nNow a prediction can be made for any `qiskit.QuantumCircuit` object or `qasm` file:\n\n```python\nfrom mqt.predictor import qcompile\n\ncompiled_qc, compilation_info, selected_device = qcompile(\n    \"qasm_file_path_or_QuantumCircuit\", figure_of_merit=\"expected_fidelity\"\n)\n```\n\nCurrently available figures of merit are `fidelity` and `critical_depth`.\n\n# Examination of all seven trained classifiers of the ML model\n\nTo play around with all the examined models, please use the `notebooks/ml/evaluation.ipynb` Jupyter notebook.\n\n## Adjustment of training data generation process\n\nThe adjustment of the following parts is possible:\n\n### Evaluation Metric\n\nTo make predictions which compilation options are the best ones for a given quantum circuits, a goodness definition is needed.\nIn principle, this evaluation metric can be designed to be arbitrarily complex, e.g., factoring in actual costs of executing quantum circuits on the respective platform or availability limitations for certain devices.\nHowever, any suitable evaluation metric should, at least, consider characteristics of the compiled quantum circuit and the respective device.\nAn exemplary metric could be the overall fidelity of a compiled quantum circuit for its targeted device.\n\n### Generation of Training Data\n\nTo train the model, sufficient training data must be provided as qasm files in the `./training_samples_folder`.\nWe provide the training data used for the pre-trained model.\n\nAfter the adjustment is finished, the following methods need to be called to generate the training data:\n\n```python\nfrom mqt.predictor import ml\n\npredictor = ml.Predictor()\npredictor.generate_compiled_circuits(figure_of_merit=\"expected_fidelity\")\ntraining_data, name_list, scores_list = predictor.generate_trainingdata_from_qasm_files(\n    figure_of_merit=\"expected_fidelity\"\n)\nml.helper.save_training_data(\n    training_data, name_list, scores_list, figure_of_merit=\"expected_fidelity\"\n)\n```\n\nNow, the Random Forest classifier can be trained:\n\n```python\npredictor.train_random_forest_classifier(figure_of_merit=\"expected_fidelity\")\n```\n\nAdditionally, the raw training data may be extracted and can be used for any machine learning model:\n\n```python\n(\n    X_train,\n    X_test,\n    y_train,\n    y_test,\n    indices_train,\n    indices_test,\n    names_list,\n    scores_list,\n) = predictor.get_prepared_training_data(\n    save_non_zero_indices=True, figure_of_merit=\"expected_fidelity\"\n)\n```\n\n# Repository Structure\n\n```\n.\n\u251c\u2500\u2500 notebooks/\n\u2502 \u251c\u2500\u2500 evaluations/\n\u2502 \u2502     \u251c\u2500\u2500 ...\n\u2502 \u2514\u2500\u2500 example.ipynb\n\u251c\u2500\u2500 src/\n\u2502 \u251c\u2500\u2500 mqt/\n\u2502   \u2514\u2500\u2500 predictor/\n\u2502     \u251c\u2500\u2500 calibration_files/\n\u2502     \u251c\u2500\u2500 ml/\n\u2502     \u2502 \u2514\u2500\u2500 training_data/\n\u2502     \u2502     \u251c\u2500\u2500 trained_model\n\u2502     \u2502     \u251c\u2500\u2500 training_circuits\n\u2502     \u2502     \u251c\u2500\u2500 training_circuits_compiled\n\u2502     \u2502     \u2514\u2500\u2500 training_data_aggregated\n\u2502     \u2514\u2500\u2500 rl/\n\u2502          \u2514\u2500\u2500 training_data/\n\u2502              \u251c\u2500\u2500 trained_model\n\u2502              \u2514\u2500\u2500 training_circuits\n```\n\n# References\n\nThe MQT Predictor is based on the following publications:\n\n```bibtex\n@INPROCEEDINGS{quetschlich2023prediction,\n\tAUTHOR    = {N. Quetschlich and L. Burgholzer and R. Wille},\n\tTITLE     = {{Predicting Good Quantum Circuit Compilation Options}},\n\tBOOKTITLE = {IEEE International Conference on Quantum Software (QSW)},\n\tYEAR      = {2023},\n}\n```\n\nwhich is also available on arXiv:\n[![a](https://img.shields.io/static/v1?label=arXiv&message=2210.08027&color=inactive&style=flat-square)](https://arxiv.org/abs/2210.08027)\n\n```bibtex\n@INPROCEEDINGS{quetschlich2023compileroptimization,\n  author        = {N. Quetschlich and L. Burgholzer and R. Wille},\n  title         = {{Compiler Optimization for Quantum Computing Using Reinforcement Learning}},\n  booktitle     = {{Design Automation Conference (DAC)}},\n  year          = {2023},\n}\n```\n\nwhich is also available on arXiv:\n[![a](https://img.shields.io/static/v1?label=arXiv&message=2212.04508&color=inactive&style=flat-square)](https://arxiv.org/abs/2212.04508)\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2022 Nils Quetschlich, Lukas Burgholzer, and 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": "MQT Predictor - A MQT tool for Determining Good Quantum Circuit Compilation Options",
    "version": "2.0.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/cda-tum/mqtpredictor/issues",
        "Discussions": "https://github.com/cda-tum/mqtpredictor/discussions",
        "Homepage": "https://github.com/cda-tum/mqtpredictor",
        "Research": "https://www.cda.cit.tum.de/research/quantum/"
    },
    "split_keywords": [
        "mqt",
        "quantum computing",
        "compilation",
        "machine learning",
        "prediction"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5a766a1d59e7b791624082d67b2fbb6f9cc3d6c4404858cc243db8d903c72b8",
                "md5": "f67f377ae74fec834178d4e1d323925e",
                "sha256": "b0dc0ec3dea49136b9d1d56c183f3d498d000799dd1684980412391a66cf69fe"
            },
            "downloads": -1,
            "filename": "mqt.predictor-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f67f377ae74fec834178d4e1d323925e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 1905160,
            "upload_time": "2023-10-08T20:44:12",
            "upload_time_iso_8601": "2023-10-08T20:44:12.289254Z",
            "url": "https://files.pythonhosted.org/packages/c5/a7/66a1d59e7b791624082d67b2fbb6f9cc3d6c4404858cc243db8d903c72b8/mqt.predictor-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c9b22f73958f39193099fa5e72a6c1d4186ad4a4efa5e23d012f863556b134b8",
                "md5": "43c783fbc598d1881659b158ea530df0",
                "sha256": "b0f40cb586b9d81c44d884e26a4ce4328caca5101eb49e1a5f4d2bbc91b3cc77"
            },
            "downloads": -1,
            "filename": "mqt.predictor-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "43c783fbc598d1881659b158ea530df0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 3005510,
            "upload_time": "2023-10-08T20:44:14",
            "upload_time_iso_8601": "2023-10-08T20:44:14.623154Z",
            "url": "https://files.pythonhosted.org/packages/c9/b2/2f73958f39193099fa5e72a6c1d4186ad4a4efa5e23d012f863556b134b8/mqt.predictor-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-08 20:44:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cda-tum",
    "github_project": "mqtpredictor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mqt.predictor"
}
        
Elapsed time: 0.12404s