Name | projectq JSON |
Version |
0.8.0
JSON |
| download |
home_page | |
Summary | ProjectQ - An open source software framework for quantum computing |
upload_time | 2022-10-18 16:03:17 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.7 |
license | Apache License Version 2.0 |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
ProjectQ - An open source software framework for quantum computing
==================================================================
.. image:: https://img.shields.io/pypi/pyversions/projectq?label=Python
:alt: PyPI - Python Version
.. image:: https://badge.fury.io/py/projectq.svg
:target: https://badge.fury.io/py/projectq
.. image:: https://github.com/ProjectQ-Framework/ProjectQ/actions/workflows/ci.yml/badge.svg
:alt: CI Status
:target: https://github.com/ProjectQ-Framework/ProjectQ/actions/workflows/ci.yml
.. image:: https://coveralls.io/repos/github/ProjectQ-Framework/ProjectQ/badge.svg
:alt: Coverage Status
:target: https://coveralls.io/github/ProjectQ-Framework/ProjectQ
.. image:: https://readthedocs.org/projects/projectq/badge/?version=latest
:target: http://projectq.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
ProjectQ is an open source effort for quantum computing.
It features a compilation framework capable of
targeting various types of hardware, a high-performance quantum computer
simulator with emulation capabilities, and various compiler plug-ins.
This allows users to
- run quantum programs on the IBM Quantum Experience chip, AQT devices, AWS Braket, Azure Quantum, or IonQ service provided devices
- simulate quantum programs on classical computers
- emulate quantum programs at a higher level of abstraction (e.g.,
mimicking the action of large oracles instead of compiling them to
low-level gates)
- export quantum programs as circuits (using TikZ)
- get resource estimates
Examples
--------
**First quantum program**
.. code-block:: python
from projectq import MainEngine # import the main compiler engine
from projectq.ops import (
H,
Measure,
) # import the operations we want to perform (Hadamard and measurement)
eng = MainEngine() # create a default compiler (the back-end is a simulator)
qubit = eng.allocate_qubit() # allocate a quantum register with 1 qubit
H | qubit # apply a Hadamard gate
Measure | qubit # measure the qubit
eng.flush() # flush all gates (and execute measurements)
print(f"Measured {int(qubit)}") # converting a qubit to int or bool gives access to the measurement result
ProjectQ features a lean syntax which is close to the mathematical notation used in quantum physics. For example, a rotation of a qubit around the x-axis is usually specified as:
.. image:: docs/images/braket_notation.svg
:alt: Rx(theta)|qubit>
:width: 100px
The same statement in ProjectQ's syntax is:
.. code-block:: python
Rx(theta) | qubit
The **|**-operator separates the specification of the gate operation (left-hand side) from the quantum bits to which the operation is applied (right-hand side).
**Changing the compiler and using a resource counter as a back-end**
Instead of simulating a quantum program, one can use our resource counter (as a back-end) to determine how many operations it would take on a future quantum computer with a given architecture. Suppose the qubits are arranged on a linear chain and the architecture supports any single-qubit gate as well as the two-qubit CNOT and Swap operations:
.. code-block:: python
from projectq import MainEngine
from projectq.backends import ResourceCounter
from projectq.ops import QFT
from projectq.setups import linear
compiler_engines = linear.get_engine_list(num_qubits=16, one_qubit_gates='any', two_qubit_gates=(CNOT, Swap))
resource_counter = ResourceCounter()
eng = MainEngine(backend=resource_counter, engine_list=compiler_engines)
qureg = eng.allocate_qureg(16)
QFT | qureg
eng.flush()
print(resource_counter)
# This will output, among other information,
# how many operations are needed to perform
# this quantum fourier transform (QFT), i.e.,
# Gate class counts:
# AllocateQubitGate : 16
# CXGate : 240
# HGate : 16
# R : 120
# Rz : 240
# SwapGate : 262
**Running a quantum program on IBM's QE chips**
To run a program on the IBM Quantum Experience chips, all one has to do is choose the `IBMBackend` and the corresponding setup:
.. code-block:: python
import projectq.setups.ibm
from projectq.backends import IBMBackend
token = 'MY_TOKEN'
device = 'ibmq_16_melbourne'
compiler_engines = projectq.setups.ibm.get_engine_list(token=token, device=device)
eng = MainEngine(
IBMBackend(token=token, use_hardware=True, num_runs=1024, verbose=False, device=device),
engine_list=compiler_engines,
)
**Running a quantum program on AQT devices**
To run a program on the AQT trapped ion quantum computer, choose the `AQTBackend` and the corresponding setup:
.. code-block:: python
import projectq.setups.aqt
from projectq.backends import AQTBackend
token = 'MY_TOKEN'
device = 'aqt_device'
compiler_engines = projectq.setups.aqt.get_engine_list(token=token, device=device)
eng = MainEngine(
AQTBackend(token=token, use_hardware=True, num_runs=1024, verbose=False, device=device),
engine_list=compiler_engines,
)
**Running a quantum program on a AWS Braket provided device**
To run a program on some of the devices provided by the AWS Braket service,
choose the `AWSBraketBackend`. The currend devices supported are Aspen-8 from Rigetti,
IonQ from IonQ and the state vector simulator SV1:
.. code-block:: python
from projectq.backends import AWSBraketBackend
creds = {
'AWS_ACCESS_KEY_ID': 'your_aws_access_key_id',
'AWS_SECRET_KEY': 'your_aws_secret_key',
}
s3_folder = ['S3Bucket', 'S3Directory']
device = 'IonQ'
eng = MainEngine(
AWSBraketBackend(
use_hardware=True,
credentials=creds,
s3_folder=s3_folder,
num_runs=1024,
verbose=False,
device=device,
),
engine_list=[],
)
.. note::
In order to use the AWSBraketBackend, you need to install ProjectQ with the 'braket' extra requirement:
.. code-block:: bash
python3 -m pip install projectq[braket]
or
.. code-block:: bash
cd /path/to/projectq/source/code
python3 -m pip install -ve .[braket]
**Running a quantum program on a Azure Quantum provided device**
To run a program on devices provided by the `Azure Quantum <https://azure.microsoft.com/en-us/services/quantum/>`_.
Use `AzureQuantumBackend` to run ProjectQ circuits on hardware devices and simulator devices from providers `IonQ` and `Quantinuum`.
.. code-block:: python
from projectq.backends import AzureQuantumBackend
azure_quantum_backend = AzureQuantumBackend(
use_hardware=False, target_name='ionq.simulator', resource_id='<resource-id>', location='<location>', verbose=True
)
.. note::
In order to use the AzureQuantumBackend, you need to install ProjectQ with the 'azure-quantum' extra requirement:
.. code-block:: bash
python3 -m pip install projectq[azure-quantum]
or
.. code-block:: bash
cd /path/to/projectq/source/code
python3 -m pip install -ve .[azure-quantum]
**Running a quantum program on IonQ devices**
To run a program on the IonQ trapped ion hardware, use the `IonQBackend` and its corresponding setup.
Currently available devices are:
* `ionq_simulator`: A 29-qubit simulator.
* `ionq_qpu`: A 11-qubit trapped ion system.
.. code-block:: python
import projectq.setups.ionq
from projectq import MainEngine
from projectq.backends import IonQBackend
token = 'MY_TOKEN'
device = 'ionq_qpu'
backend = IonQBackend(
token=token,
use_hardware=True,
num_runs=1024,
verbose=False,
device=device,
)
compiler_engines = projectq.setups.ionq.get_engine_list(
token=token,
device=device,
)
eng = MainEngine(backend, engine_list=compiler_engines)
**Classically simulate a quantum program**
ProjectQ has a high-performance simulator which allows simulating up to about 30 qubits on a regular laptop. See the `simulator tutorial <https://github.com/ProjectQ-Framework/ProjectQ/blob/feature/update-readme/examples/simulator_tutorial.ipynb>`__ for more information. Using the emulation features of our simulator (fast classical shortcuts), one can easily emulate Shor's algorithm for problem sizes for which a quantum computer would require above 50 qubits, see our `example codes <http://projectq.readthedocs.io/en/latest/examples.html#shor-s-algorithm-for-factoring>`__.
The advanced features of the simulator are also particularly useful to investigate algorithms for the simulation of quantum systems. For example, the simulator can evolve a quantum system in time (without Trotter errors) and it gives direct access to expectation values of Hamiltonians leading to extremely fast simulations of VQE type algorithms:
.. code-block:: python
from projectq import MainEngine
from projectq.ops import All, Measure, QubitOperator, TimeEvolution
eng = MainEngine()
wavefunction = eng.allocate_qureg(2)
# Specify a Hamiltonian in terms of Pauli operators:
hamiltonian = QubitOperator("X0 X1") + 0.5 * QubitOperator("Y0 Y1")
# Apply exp(-i * Hamiltonian * time) (without Trotter error)
TimeEvolution(time=1, hamiltonian=hamiltonian) | wavefunction
# Measure the expection value using the simulator shortcut:
eng.flush()
value = eng.backend.get_expectation_value(hamiltonian, wavefunction)
# Last operation in any program should be measuring all qubits
All(Measure) | qureg
eng.flush()
Getting started
---------------
To start using ProjectQ, simply follow the installation instructions in the `tutorials <http://projectq.readthedocs.io/en/latest/tutorials.html>`__. There, you will also find OS-specific hints, a small introduction to the ProjectQ syntax, and a few `code examples <http://projectq.readthedocs.io/en/latest/examples.html>`__. More example codes and tutorials can be found in the examples folder `here <https://github.com/ProjectQ-Framework/ProjectQ/tree/develop/examples>`__ on GitHub.
Also, make sure to check out the `ProjectQ
website <http://www.projectq.ch>`__ and the detailed `code documentation <http://projectq.readthedocs.io/en/latest/>`__.
How to contribute
-----------------
For information on how to contribute, please visit the `ProjectQ
website <http://www.projectq.ch>`__ or send an e-mail to
info@projectq.ch.
Please cite
-----------
When using ProjectQ for research projects, please cite
- Damian S. Steiger, Thomas Haener, and Matthias Troyer "ProjectQ: An
Open Source Software Framework for Quantum Computing"
`Quantum 2, 49 (2018) <https://doi.org/10.22331/q-2018-01-31-49>`__
(published on `arXiv <https://arxiv.org/abs/1612.08091>`__ on 23 Dec 2016)
- Thomas Haener, Damian S. Steiger, Krysta M. Svore, and Matthias Troyer
"A Software Methodology for Compiling Quantum Programs" `Quantum Sci. Technol. 3 (2018) 020501 <https://doi.org/10.1088/2058-9565/aaa5cc>`__
(published on `arXiv <http://arxiv.org/abs/1604.01401>`__ on 5 Apr 2016)
Authors
-------
The first release of ProjectQ (v0.1) was developed by `Thomas
Haener <http://www.comp.phys.ethz.ch/people/person-detail.html?persid=179208>`__
and `Damian S.
Steiger <http://www.comp.phys.ethz.ch/people/person-detail.html?persid=165677>`__
in the group of `Prof. Dr. Matthias
Troyer <http://www.comp.phys.ethz.ch/people/troyer.html>`__ at ETH
Zurich.
ProjectQ is constantly growing and `many other people <https://github.com/ProjectQ-Framework/ProjectQ/graphs/contributors>`__ have already contributed to it in the meantime.
License
-------
ProjectQ is released under the Apache 2 license.
Raw data
{
"_id": null,
"home_page": "",
"name": "projectq",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "",
"author": "",
"author_email": "ProjectQ <info@projectq.ch>",
"download_url": "https://files.pythonhosted.org/packages/30/88/48c8347cadf6afb7f329e7c06d30880159e2a50b6e8a643c7667c26ffaf0/projectq-0.8.0.tar.gz",
"platform": null,
"description": "ProjectQ - An open source software framework for quantum computing\n==================================================================\n\n.. image:: https://img.shields.io/pypi/pyversions/projectq?label=Python\n :alt: PyPI - Python Version\n\n.. image:: https://badge.fury.io/py/projectq.svg\n :target: https://badge.fury.io/py/projectq\n\n.. image:: https://github.com/ProjectQ-Framework/ProjectQ/actions/workflows/ci.yml/badge.svg\n :alt: CI Status\n :target: https://github.com/ProjectQ-Framework/ProjectQ/actions/workflows/ci.yml\n\n.. image:: https://coveralls.io/repos/github/ProjectQ-Framework/ProjectQ/badge.svg\n :alt: Coverage Status\n :target: https://coveralls.io/github/ProjectQ-Framework/ProjectQ\n\n.. image:: https://readthedocs.org/projects/projectq/badge/?version=latest\n :target: http://projectq.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\nProjectQ is an open source effort for quantum computing.\n\nIt features a compilation framework capable of\ntargeting various types of hardware, a high-performance quantum computer\nsimulator with emulation capabilities, and various compiler plug-ins.\nThis allows users to\n\n- run quantum programs on the IBM Quantum Experience chip, AQT devices, AWS Braket, Azure Quantum, or IonQ service provided devices\n- simulate quantum programs on classical computers\n- emulate quantum programs at a higher level of abstraction (e.g.,\n mimicking the action of large oracles instead of compiling them to\n low-level gates)\n- export quantum programs as circuits (using TikZ)\n- get resource estimates\n\nExamples\n--------\n\n**First quantum program**\n\n.. code-block:: python\n\n from projectq import MainEngine # import the main compiler engine\n from projectq.ops import (\n H,\n Measure,\n ) # import the operations we want to perform (Hadamard and measurement)\n\n eng = MainEngine() # create a default compiler (the back-end is a simulator)\n qubit = eng.allocate_qubit() # allocate a quantum register with 1 qubit\n\n H | qubit # apply a Hadamard gate\n Measure | qubit # measure the qubit\n\n eng.flush() # flush all gates (and execute measurements)\n print(f\"Measured {int(qubit)}\") # converting a qubit to int or bool gives access to the measurement result\n\n\nProjectQ features a lean syntax which is close to the mathematical notation used in quantum physics. For example, a rotation of a qubit around the x-axis is usually specified as:\n\n.. image:: docs/images/braket_notation.svg\n :alt: Rx(theta)|qubit>\n :width: 100px\n\nThe same statement in ProjectQ's syntax is:\n\n.. code-block:: python\n\n Rx(theta) | qubit\n\nThe **|**-operator separates the specification of the gate operation (left-hand side) from the quantum bits to which the operation is applied (right-hand side).\n\n**Changing the compiler and using a resource counter as a back-end**\n\nInstead of simulating a quantum program, one can use our resource counter (as a back-end) to determine how many operations it would take on a future quantum computer with a given architecture. Suppose the qubits are arranged on a linear chain and the architecture supports any single-qubit gate as well as the two-qubit CNOT and Swap operations:\n\n.. code-block:: python\n\n from projectq import MainEngine\n from projectq.backends import ResourceCounter\n from projectq.ops import QFT\n from projectq.setups import linear\n\n compiler_engines = linear.get_engine_list(num_qubits=16, one_qubit_gates='any', two_qubit_gates=(CNOT, Swap))\n resource_counter = ResourceCounter()\n eng = MainEngine(backend=resource_counter, engine_list=compiler_engines)\n qureg = eng.allocate_qureg(16)\n QFT | qureg\n eng.flush()\n\n print(resource_counter)\n\n # This will output, among other information,\n # how many operations are needed to perform\n # this quantum fourier transform (QFT), i.e.,\n # Gate class counts:\n # AllocateQubitGate : 16\n # CXGate : 240\n # HGate : 16\n # R : 120\n # Rz : 240\n # SwapGate : 262\n\n\n**Running a quantum program on IBM's QE chips**\n\nTo run a program on the IBM Quantum Experience chips, all one has to do is choose the `IBMBackend` and the corresponding setup:\n\n.. code-block:: python\n\n import projectq.setups.ibm\n from projectq.backends import IBMBackend\n\n token = 'MY_TOKEN'\n device = 'ibmq_16_melbourne'\n compiler_engines = projectq.setups.ibm.get_engine_list(token=token, device=device)\n eng = MainEngine(\n IBMBackend(token=token, use_hardware=True, num_runs=1024, verbose=False, device=device),\n engine_list=compiler_engines,\n )\n\n\n**Running a quantum program on AQT devices**\n\nTo run a program on the AQT trapped ion quantum computer, choose the `AQTBackend` and the corresponding setup:\n\n.. code-block:: python\n\n import projectq.setups.aqt\n from projectq.backends import AQTBackend\n\n token = 'MY_TOKEN'\n device = 'aqt_device'\n compiler_engines = projectq.setups.aqt.get_engine_list(token=token, device=device)\n eng = MainEngine(\n AQTBackend(token=token, use_hardware=True, num_runs=1024, verbose=False, device=device),\n engine_list=compiler_engines,\n )\n\n\n**Running a quantum program on a AWS Braket provided device**\n\nTo run a program on some of the devices provided by the AWS Braket service,\nchoose the `AWSBraketBackend`. The currend devices supported are Aspen-8 from Rigetti,\nIonQ from IonQ and the state vector simulator SV1:\n\n.. code-block:: python\n\n from projectq.backends import AWSBraketBackend\n\n creds = {\n 'AWS_ACCESS_KEY_ID': 'your_aws_access_key_id',\n 'AWS_SECRET_KEY': 'your_aws_secret_key',\n }\n\n s3_folder = ['S3Bucket', 'S3Directory']\n device = 'IonQ'\n eng = MainEngine(\n AWSBraketBackend(\n use_hardware=True,\n credentials=creds,\n s3_folder=s3_folder,\n num_runs=1024,\n verbose=False,\n device=device,\n ),\n engine_list=[],\n )\n\n\n.. note::\n\n In order to use the AWSBraketBackend, you need to install ProjectQ with the 'braket' extra requirement:\n\n .. code-block:: bash\n\n python3 -m pip install projectq[braket]\n\n or\n\n .. code-block:: bash\n\n cd /path/to/projectq/source/code\n python3 -m pip install -ve .[braket]\n\n\n**Running a quantum program on a Azure Quantum provided device**\n\nTo run a program on devices provided by the `Azure Quantum <https://azure.microsoft.com/en-us/services/quantum/>`_.\n\nUse `AzureQuantumBackend` to run ProjectQ circuits on hardware devices and simulator devices from providers `IonQ` and `Quantinuum`.\n\n.. code-block:: python\n\n from projectq.backends import AzureQuantumBackend\n\n azure_quantum_backend = AzureQuantumBackend(\n use_hardware=False, target_name='ionq.simulator', resource_id='<resource-id>', location='<location>', verbose=True\n )\n\n.. note::\n\n In order to use the AzureQuantumBackend, you need to install ProjectQ with the 'azure-quantum' extra requirement:\n\n .. code-block:: bash\n\n python3 -m pip install projectq[azure-quantum]\n\n or\n\n .. code-block:: bash\n\n cd /path/to/projectq/source/code\n python3 -m pip install -ve .[azure-quantum]\n\n**Running a quantum program on IonQ devices**\n\nTo run a program on the IonQ trapped ion hardware, use the `IonQBackend` and its corresponding setup.\n\nCurrently available devices are:\n\n* `ionq_simulator`: A 29-qubit simulator.\n* `ionq_qpu`: A 11-qubit trapped ion system.\n\n.. code-block:: python\n\n import projectq.setups.ionq\n from projectq import MainEngine\n from projectq.backends import IonQBackend\n\n token = 'MY_TOKEN'\n device = 'ionq_qpu'\n backend = IonQBackend(\n token=token,\n use_hardware=True,\n num_runs=1024,\n verbose=False,\n device=device,\n )\n compiler_engines = projectq.setups.ionq.get_engine_list(\n token=token,\n device=device,\n )\n eng = MainEngine(backend, engine_list=compiler_engines)\n\n\n**Classically simulate a quantum program**\n\nProjectQ has a high-performance simulator which allows simulating up to about 30 qubits on a regular laptop. See the `simulator tutorial <https://github.com/ProjectQ-Framework/ProjectQ/blob/feature/update-readme/examples/simulator_tutorial.ipynb>`__ for more information. Using the emulation features of our simulator (fast classical shortcuts), one can easily emulate Shor's algorithm for problem sizes for which a quantum computer would require above 50 qubits, see our `example codes <http://projectq.readthedocs.io/en/latest/examples.html#shor-s-algorithm-for-factoring>`__.\n\n\nThe advanced features of the simulator are also particularly useful to investigate algorithms for the simulation of quantum systems. For example, the simulator can evolve a quantum system in time (without Trotter errors) and it gives direct access to expectation values of Hamiltonians leading to extremely fast simulations of VQE type algorithms:\n\n.. code-block:: python\n\n from projectq import MainEngine\n from projectq.ops import All, Measure, QubitOperator, TimeEvolution\n\n eng = MainEngine()\n wavefunction = eng.allocate_qureg(2)\n # Specify a Hamiltonian in terms of Pauli operators:\n hamiltonian = QubitOperator(\"X0 X1\") + 0.5 * QubitOperator(\"Y0 Y1\")\n # Apply exp(-i * Hamiltonian * time) (without Trotter error)\n TimeEvolution(time=1, hamiltonian=hamiltonian) | wavefunction\n # Measure the expection value using the simulator shortcut:\n eng.flush()\n value = eng.backend.get_expectation_value(hamiltonian, wavefunction)\n\n # Last operation in any program should be measuring all qubits\n All(Measure) | qureg\n eng.flush()\n\n\n\nGetting started\n---------------\n\nTo start using ProjectQ, simply follow the installation instructions in the `tutorials <http://projectq.readthedocs.io/en/latest/tutorials.html>`__. There, you will also find OS-specific hints, a small introduction to the ProjectQ syntax, and a few `code examples <http://projectq.readthedocs.io/en/latest/examples.html>`__. More example codes and tutorials can be found in the examples folder `here <https://github.com/ProjectQ-Framework/ProjectQ/tree/develop/examples>`__ on GitHub.\n\nAlso, make sure to check out the `ProjectQ\nwebsite <http://www.projectq.ch>`__ and the detailed `code documentation <http://projectq.readthedocs.io/en/latest/>`__.\n\nHow to contribute\n-----------------\n\nFor information on how to contribute, please visit the `ProjectQ\nwebsite <http://www.projectq.ch>`__ or send an e-mail to\ninfo@projectq.ch.\n\nPlease cite\n-----------\n\nWhen using ProjectQ for research projects, please cite\n\n- Damian S. Steiger, Thomas Haener, and Matthias Troyer \"ProjectQ: An\n Open Source Software Framework for Quantum Computing\"\n `Quantum 2, 49 (2018) <https://doi.org/10.22331/q-2018-01-31-49>`__\n (published on `arXiv <https://arxiv.org/abs/1612.08091>`__ on 23 Dec 2016)\n- Thomas Haener, Damian S. Steiger, Krysta M. Svore, and Matthias Troyer\n \"A Software Methodology for Compiling Quantum Programs\" `Quantum Sci. Technol. 3 (2018) 020501 <https://doi.org/10.1088/2058-9565/aaa5cc>`__\n (published on `arXiv <http://arxiv.org/abs/1604.01401>`__ on 5 Apr 2016)\n\nAuthors\n-------\n\nThe first release of ProjectQ (v0.1) was developed by `Thomas\nHaener <http://www.comp.phys.ethz.ch/people/person-detail.html?persid=179208>`__\nand `Damian S.\nSteiger <http://www.comp.phys.ethz.ch/people/person-detail.html?persid=165677>`__\nin the group of `Prof. Dr. Matthias\nTroyer <http://www.comp.phys.ethz.ch/people/troyer.html>`__ at ETH\nZurich.\n\nProjectQ is constantly growing and `many other people <https://github.com/ProjectQ-Framework/ProjectQ/graphs/contributors>`__ have already contributed to it in the meantime.\n\nLicense\n-------\n\nProjectQ is released under the Apache 2 license.\n",
"bugtrack_url": null,
"license": "Apache License Version 2.0",
"summary": "ProjectQ - An open source software framework for quantum computing",
"version": "0.8.0",
"project_urls": {
"Documentation": "https://projectq.readthedocs.io/en/latest/",
"Homepage": "http://www.projectq.ch",
"Issue Tracker": "https://github.com/ProjectQ-Framework/ProjectQ/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "308848c8347cadf6afb7f329e7c06d30880159e2a50b6e8a643c7667c26ffaf0",
"md5": "dd24bc539cef8e0be02c455166c32b41",
"sha256": "0bcd242afabe947ac4737dffab1de62628b84125ee6ccb3ec23bd4f1d082ec60"
},
"downloads": -1,
"filename": "projectq-0.8.0.tar.gz",
"has_sig": false,
"md5_digest": "dd24bc539cef8e0be02c455166c32b41",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 433667,
"upload_time": "2022-10-18T16:03:17",
"upload_time_iso_8601": "2022-10-18T16:03:17.779185Z",
"url": "https://files.pythonhosted.org/packages/30/88/48c8347cadf6afb7f329e7c06d30880159e2a50b6e8a643c7667c26ffaf0/projectq-0.8.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-10-18 16:03:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ProjectQ-Framework",
"github_project": "ProjectQ",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "projectq"
}