2023-03-02T15:35:50,243 Created temporary directory: /tmp/pip-ephem-wheel-cache-4amglvft 2023-03-02T15:35:50,245 Created temporary directory: /tmp/pip-build-tracker-fdcweva1 2023-03-02T15:35:50,246 Initialized build tracking at /tmp/pip-build-tracker-fdcweva1 2023-03-02T15:35:50,246 Created build tracker: /tmp/pip-build-tracker-fdcweva1 2023-03-02T15:35:50,246 Entered build tracker: /tmp/pip-build-tracker-fdcweva1 2023-03-02T15:35:50,247 Created temporary directory: /tmp/pip-wheel-hzvbd7no 2023-03-02T15:35:50,251 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-03-02T15:35:50,254 Created temporary directory: /tmp/pip-ephem-wheel-cache-dbbsrac1 2023-03-02T15:35:50,279 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-02T15:35:50,282 2 location(s) to search for versions of quantum-gates: 2023-03-02T15:35:50,282 * https://pypi.org/simple/quantum-gates/ 2023-03-02T15:35:50,282 * https://www.piwheels.org/simple/quantum-gates/ 2023-03-02T15:35:50,283 Fetching project page and analyzing links: https://pypi.org/simple/quantum-gates/ 2023-03-02T15:35:50,283 Getting page https://pypi.org/simple/quantum-gates/ 2023-03-02T15:35:50,285 Found index url https://pypi.org/simple 2023-03-02T15:35:50,335 Fetched page https://pypi.org/simple/quantum-gates/ as application/vnd.pypi.simple.v1+json 2023-03-02T15:35:50,338 Found link https://files.pythonhosted.org/packages/aa/3f/9847c7a7632d39bd15dbbf35b3c488375d55467c495d77b3ee45d0f96530/quantum-gates-0.1.0.tar.gz (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9), version: 0.1.0 2023-03-02T15:35:50,338 Skipping link: No binaries permitted for quantum-gates: https://files.pythonhosted.org/packages/32/42/af7fffecf8e9d4589a97d98888600d445ac8aa601eb409073a1b57d7c1e8/quantum_gates-0.1.0-py3-none-any.whl (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,339 Found link https://files.pythonhosted.org/packages/c3/3d/75868bcd7fb640ff6766a01a01808eb4ba9ee705c2367426886f6d991214/quantum-gates-1.0.1.tar.gz (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9), version: 1.0.1 2023-03-02T15:35:50,339 Skipping link: No binaries permitted for quantum-gates: https://files.pythonhosted.org/packages/52/26/1b9175d9c8a7b99d8286100d3cce5ccd888e35d956df8d26eddd54980ce1/quantum_gates-1.0.1-py3-none-any.whl (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,339 Found link https://files.pythonhosted.org/packages/77/e3/7a0bed808806378c0a3305f6125c61e091da081f619e34b0c0bcecc4ad6f/quantum-gates-1.0.2.tar.gz (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9), version: 1.0.2 2023-03-02T15:35:50,340 Skipping link: No binaries permitted for quantum-gates: https://files.pythonhosted.org/packages/61/89/92284c3091cade2db4a02741e0f4304fe8d85c5f2d04d07871bfc54ba3d0/quantum_gates-1.0.2-py3-none-any.whl (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,340 Found link https://files.pythonhosted.org/packages/8f/b3/e4bcc6c0dd0a1c3bb6bad3b95c805263b0dbc7cf8f91f85db3f7c8a28988/quantum-gates-1.0.3.tar.gz (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9), version: 1.0.3 2023-03-02T15:35:50,340 Skipping link: No binaries permitted for quantum-gates: https://files.pythonhosted.org/packages/0e/f0/05c991e001811eabe9a147e92813cb9c26a02846e2a0f61d1f3ce4039949/quantum_gates-1.0.3-py3-none-any.whl (from https://pypi.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,341 Fetching project page and analyzing links: https://www.piwheels.org/simple/quantum-gates/ 2023-03-02T15:35:50,341 Getting page https://www.piwheels.org/simple/quantum-gates/ 2023-03-02T15:35:50,342 Found index url https://www.piwheels.org/simple 2023-03-02T15:35:50,707 Fetched page https://www.piwheels.org/simple/quantum-gates/ as text/html 2023-03-02T15:35:50,710 Skipping link: No binaries permitted for quantum-gates: https://www.piwheels.org/simple/quantum-gates/quantum_gates-1.0.2-py3-none-any.whl#sha256=5cc32a54bcc6142625ad7c3168ced8380dae5199414e0d55cd69b4a4d15cc247 (from https://www.piwheels.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,710 Skipping link: No binaries permitted for quantum-gates: https://www.piwheels.org/simple/quantum-gates/quantum_gates-1.0.1-py3-none-any.whl#sha256=bfd74823d4fd7ab2b687b47667536f63b20fe9ae7ced3292f748c4970afdbe89 (from https://www.piwheels.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,710 Skipping link: No binaries permitted for quantum-gates: https://www.piwheels.org/simple/quantum-gates/quantum_gates-0.1.0-py3-none-any.whl#sha256=8eb62bdb7f6aa105aca1a99632d5d5b2a7991140344f4637be275696057d5bd0 (from https://www.piwheels.org/simple/quantum-gates/) (requires-python:>=3.9) 2023-03-02T15:35:50,710 Skipping link: not a file: https://www.piwheels.org/simple/quantum-gates/ 2023-03-02T15:35:50,711 Skipping link: not a file: https://pypi.org/simple/quantum-gates/ 2023-03-02T15:35:50,728 Given no hashes to check 1 links for project 'quantum-gates': discarding no candidates 2023-03-02T15:35:50,744 Collecting quantum-gates==1.0.3 2023-03-02T15:35:50,746 Created temporary directory: /tmp/pip-unpack-dwtix6kt 2023-03-02T15:35:50,942 Downloading quantum-gates-1.0.3.tar.gz (59 kB) 2023-03-02T15:35:51,167 Added quantum-gates==1.0.3 from https://files.pythonhosted.org/packages/8f/b3/e4bcc6c0dd0a1c3bb6bad3b95c805263b0dbc7cf8f91f85db3f7c8a28988/quantum-gates-1.0.3.tar.gz to build tracker '/tmp/pip-build-tracker-fdcweva1' 2023-03-02T15:35:51,173 Created temporary directory: /tmp/pip-build-env-xjgusa3c 2023-03-02T15:35:51,183 Installing build dependencies: started 2023-03-02T15:35:51,184 Running command pip subprocess to install build dependencies 2023-03-02T15:35:52,379 Using pip 23.0.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9) 2023-03-02T15:35:52,964 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-03-02T15:35:52,990 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-02T15:35:54,700 Collecting setuptools>=42 2023-03-02T15:35:54,834 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.4.0-py3-none-any.whl (1.1 MB) 2023-03-02T15:35:55,121 Collecting wheel 2023-03-02T15:35:55,152 Using cached https://www.piwheels.org/simple/wheel/wheel-0.38.4-py3-none-any.whl (36 kB) 2023-03-02T15:35:55,284 Collecting flit_core<4,>=3.2 2023-03-02T15:35:55,318 Using cached https://www.piwheels.org/simple/flit-core/flit_core-3.8.0-py3-none-any.whl (62 kB) 2023-03-02T15:35:57,089 Installing collected packages: wheel, setuptools, flit_core 2023-03-02T15:35:57,235 Creating /tmp/pip-build-env-xjgusa3c/overlay/bin 2023-03-02T15:35:57,237 changing mode of /tmp/pip-build-env-xjgusa3c/overlay/bin/wheel to 755 2023-03-02T15:35:59,762 Successfully installed flit_core-3.8.0 setuptools-67.4.0 wheel-0.38.4 2023-03-02T15:36:00,246 Installing build dependencies: finished with status 'done' 2023-03-02T15:36:00,252 Getting requirements to build wheel: started 2023-03-02T15:36:00,253 Running command Getting requirements to build wheel 2023-03-02T15:36:00,875 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:00,876 !! 2023-03-02T15:36:00,876 ########################################################################## 2023-03-02T15:36:00,876 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:00,876 ########################################################################## 2023-03-02T15:36:00,877 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:00,877 `readme = '# Noisy Quantum Gates [![Made at QMTS!](https://img.shields.io/badge/University%20of%20Trieste-Bassi%20Group-brightgreen)](http://www.qmts.it/) [![Made at CERN!](https://img.shields.io/badge/CERN-CERN%20openlab-brightgreen)](https://openlab.cern/) [![Made at CERN!](https://img.shields.io/badge/CERN-Open%20Source-%232980b9.svg)](https://home.cern) [![Made at CERN!](https://img.shields.io/badge/CERN-QTI-blue)](https://quantum.cern/our-governance)\n\nImplementation of the Noisy Quantum Gates model, which is soon to be published. It is a novel method to simulate the noisy behaviour of quantum devices by incorporating the noise directly in the gates, which become stochastic matrices. \n\n\n## Documentations\nThe documentation for Noisy Quantum Gates can be accessed on the website \n Read the Docs.\n\n\n## How to install\n### Requirements\nThe Python version should be 3.9 or later. Find your Python version by typing `python` or `python3` in the CLI. \nWe recommend using the repo together with an [IBM Quantum Lab](https://quantum-computing.ibm.com/lab) account, \nas it necessary for circuit compilation with Qiskit in many cases. \n\n\n### Installation as a user\nThe library is available on the Python Package Index (PyPI) with `pip install quantum-gates`. \n\n\n### Installation as a contributor\nFor users who want to have control over the source code, we recommend the following installation. Clone the repository \nfrom [Github](https://github.com/CERN-IT-INNOVATION/quantum-gates), create a new virtual environment, and activate the \nenvironment. Then you can build the wheel and install it with the package manager of your choice as described in the \nsection [How to contribute](#how-to-contribute). This will install all dependencies in your virtual environment, \nand install a working version of the library.\n\n\n## Quickstart\nExecute the following code in a script or notebook. Add your IBM token to by defining it as the variable \nIBM_TOKEN = "your_token". \n\n```python\n# Standard libraries\nimport numpy as np\nimport json\n\n# Qiskit\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.visualization import plot_histogram\n\n# Own library\nfrom quantum_gates.simulators import MrAndersonSimulator\nfrom quantum_gates.gates import standard_gates\nfrom quantum_gates.circuits import EfficientCircuit\nfrom quantum_gates.utilities import DeviceParameters\nfrom quantum_gates.utilities import setup_backend\nIBM_TOKEN = ""\n```\nWe create a quantum circuit with Qiskit. \n\n```python\ncirc = QuantumCircuit(2,2)\ncirc.h(0)\ncirc.cx(0,1)\ncirc.barrier(range(2))\ncirc.measure(range(2),range(2))\ncirc.draw(\'mpl\')\n```\n\nWe load the configuration from a json file or from code with\n```python\nconfig = {\n "backend": {\n "hub": "ibm-q",\n "group": "open",\n "project": "main",\n "device_name": "ibmq_manila"\n },\n "run": {\n "shots": 1000,\n "qubits_layout": [0, 1],\n "psi0": [1, 0, 0, 0]\n }\n}\n```\n... and setup the Qiskit backend used for the circuit transpilation.\n\n```python\nbackend_config = config["backend"]\nbackend = setup_backend(Token=IBM_TOKEN, **backend_config)\nrun_config = config["run"]\n```\n\nThis allows us to load the device parameters, which represent the noise of the quantum hardware. \n```python\nqubits_layout = run_config["qubits_layout"]\ndevice_param = DeviceParameters(qubits_layout)\ndevice_param.load_from_backend(backend)\ndevice_param_lookup = device_param.__dict__()\n```\n\nLast, we perform the simulation ... \n```python\nsim = MrAndersonSimulator(gates=standard_gates, CircuitClass=EfficientCircuit)\n\nt_circ = transpile(\n circ,\n backend,\n scheduling_method=\'asap\',\n initial_layout=qubits_layout,\n seed_transpiler=42\n)\n\nprobs = sim.run(\n t_qiskit_circ=t_circ, \n qubits_layout=qubits_layout, \n psi0=np.array(run_config["psi0"]), \n shots=run_config["shots"], \n device_param=device_param_lookup,\n nqubit=2)\n\ncounts_ng = {format(i, \'b\').zfill(2): probs[i] for i in range(0, 4)}\n```\n... and analyse the result. \n\n```python\nplot_histogram(counts_ng, bar_labels=False, legend=[\'Noisy Gates simulation\'])\n```\n\n\n# Usage\nWe recommend to read the [overview](https://quantum-gates.readthedocs.io/en/latest/index.html) of the documentation as a 2-minute preparation. \n\n\n## Imports\nThere are two ways of importing the package. 1) If you installed the code with pip, then the imports are simply of the form seen in the [Quickstart](<#quickstart>). \n\n```python\nfrom quantum_gates.simulators import MrAndersonSimulator\nfrom quantum_gates.gates import standard_gates\nfrom quantum_gates.circuits import EfficientCircuit\nfrom quantum_gates.utilities import DeviceParameters, setup_backend\n```\n\n2) If you use the source code directly and develop within the repository, then the imports become\n\n```python\nfrom src.quantum_gates._simulation.simulator import MrAndersonSimulator\nfrom src.quantum_gates._gates.gates import standard_gates\nfrom src.quantum_gates._simulation.circuit import EfficientCircuit\nfrom src.quantum_gates._utility.device_parameters import (\n DeviceParameters, \n setup_backend\n)\n``` \n\n\n# Functionality\nThe main components are the [gates](https://quantum-gates.readthedocs.io/en/latest/gates.html), \nand the [simulator](https://quantum-gates.readthedocs.io/en/latest/simulators.html). \nOne can configure the gates with different [pulse shapes](https://quantum-gates.readthedocs.io/en/latest/pulses.html>), \nand the simulator with different [circuit classes](https://quantum-gates.readthedocs.io/en/latest/circuits.html>) and \n[backends](https://quantum-gates.readthedocs.io/en/latest/backends.html). The circuit classes use a specific \nbackend for the statevector simulation. \nThe [EfficientBackend](https://quantum-gates.readthedocs.io/en/latest/backends.html) has the same functionality as \nthe [StandardBackend](https://quantum-gates.readthedocs.io/en/latest/backends.html), but is much more performant \nthanks to optimized tensor contraction algorithms. We also provide various\n[quantum algorithms](https://quantum-gates.readthedocs.io/en/latest/quantum_algorithms.html) as circuits, and \nscripts to run the circuits with the simulator, the IBM simulator, and a real IBM backend. Last, all functionality is \nunit tested and one can get sample code from the unit tests.\n\n\n# How to contribute\nContributions are welcomed and should apply the usual git-flow: fork this repo, create a local branch named \n\'feature-...\'. Commit often to ensure that each commit is easy to understand. Name your commits \n\'[feature-...] Commit message.\', such that it possible to differentiate the commits of different features in the \nmain line. Request a merge to the mainline often. Please remember to follow the \n[PEP 8 style guide](https://peps.python.org/pep-0008/), and add comments whenever it helps. The corresponding \n[authors](<#authors>) are happy to support you. \n\n\n## Build \nYou may also want to create your own distribution and test it. Navigate to the repository in your CLI of choice. \nBuild the wheel with the command `python3 -m build --sdist --wheel .` and navigate to the distribution with `cd dist`. \nUse `ls` to display the name of the wheel, and run `pip install .whl` with the correct filename. \nNow you can use your version of the library. \n\n\n# Authors\nThis project has been developed thanks to the effort of the following people:\n\n* Giovanni Di Bartolomeo (dibartolomeo.giov@gmail.com)\n* Michele Vischi (vischimichele@gmail.com)\n* Francesco Cesa\n* Michele Grossi (michele.grossi@cern.ch) \n* Sandro Donadi\n* Angelo Bassi \n* Roman Wixinger (roman.wixinger@gmail.com)\n'` 2023-03-02T15:36:00,878 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:00,878 consider this value unless 'readme' is listed as `dynamic`. 2023-03-02T15:36:00,878 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:00,878 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:00,879 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:00,879 follow strictly the standard. 2023-03-02T15:36:00,879 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-02T15:36:00,879 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:00,879 configuration. 2023-03-02T15:36:00,879 !! 2023-03-02T15:36:00,880 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:00,880 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'requires-python' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:00,880 !! 2023-03-02T15:36:00,880 ########################################################################## 2023-03-02T15:36:00,880 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:00,881 ########################################################################## 2023-03-02T15:36:00,881 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:00,881 `requires-python = '>=3.9'` 2023-03-02T15:36:00,882 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:00,882 consider this value unless 'requires-python' is listed as `dynamic`. 2023-03-02T15:36:00,882 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:00,882 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:00,882 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:00,883 follow strictly the standard. 2023-03-02T15:36:00,883 To prevent this warning, you can list 'requires-python' under `dynamic` or alternatively 2023-03-02T15:36:00,883 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:00,883 configuration. 2023-03-02T15:36:00,884 !! 2023-03-02T15:36:00,884 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:00,884 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:00,885 !! 2023-03-02T15:36:00,885 ########################################################################## 2023-03-02T15:36:00,885 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:00,885 ########################################################################## 2023-03-02T15:36:00,886 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:00,886 `license = 'MIT'` 2023-03-02T15:36:00,886 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:00,886 consider this value unless 'license' is listed as `dynamic`. 2023-03-02T15:36:00,887 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:00,887 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:00,887 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:00,887 follow strictly the standard. 2023-03-02T15:36:00,888 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-02T15:36:00,888 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:00,888 configuration. 2023-03-02T15:36:00,889 !! 2023-03-02T15:36:00,889 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:00,889 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:00,889 !! 2023-03-02T15:36:00,889 ########################################################################## 2023-03-02T15:36:00,890 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:00,890 ########################################################################## 2023-03-02T15:36:00,890 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:00,890 `classifiers = ['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Topic :: Scientific/Engineering :: Mathematics']` 2023-03-02T15:36:00,891 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:00,891 consider this value unless 'classifiers' is listed as `dynamic`. 2023-03-02T15:36:00,891 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:00,891 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:00,891 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:00,892 follow strictly the standard. 2023-03-02T15:36:00,892 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively 2023-03-02T15:36:00,892 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:00,892 configuration. 2023-03-02T15:36:00,892 !! 2023-03-02T15:36:00,893 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:01,181 running egg_info 2023-03-02T15:36:01,186 writing src/quantum_gates.egg-info/PKG-INFO 2023-03-02T15:36:01,188 writing dependency_links to src/quantum_gates.egg-info/dependency_links.txt 2023-03-02T15:36:01,191 writing requirements to src/quantum_gates.egg-info/requires.txt 2023-03-02T15:36:01,192 writing top-level names to src/quantum_gates.egg-info/top_level.txt 2023-03-02T15:36:01,212 reading manifest file 'src/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:01,219 reading manifest template 'MANIFEST.in' 2023-03-02T15:36:01,234 adding license file 'LICENSE' 2023-03-02T15:36:01,239 writing manifest file 'src/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:01,336 Getting requirements to build wheel: finished with status 'done' 2023-03-02T15:36:01,346 Created temporary directory: /tmp/pip-modern-metadata-pf4ts_5k 2023-03-02T15:36:01,349 Preparing metadata (pyproject.toml): started 2023-03-02T15:36:01,350 Running command Preparing metadata (pyproject.toml) 2023-03-02T15:36:01,895 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:01,896 !! 2023-03-02T15:36:01,897 ########################################################################## 2023-03-02T15:36:01,897 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:01,897 ########################################################################## 2023-03-02T15:36:01,897 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:01,897 `readme = '# Noisy Quantum Gates [![Made at QMTS!](https://img.shields.io/badge/University%20of%20Trieste-Bassi%20Group-brightgreen)](http://www.qmts.it/) [![Made at CERN!](https://img.shields.io/badge/CERN-CERN%20openlab-brightgreen)](https://openlab.cern/) [![Made at CERN!](https://img.shields.io/badge/CERN-Open%20Source-%232980b9.svg)](https://home.cern) [![Made at CERN!](https://img.shields.io/badge/CERN-QTI-blue)](https://quantum.cern/our-governance)\n\nImplementation of the Noisy Quantum Gates model, which is soon to be published. It is a novel method to simulate the noisy behaviour of quantum devices by incorporating the noise directly in the gates, which become stochastic matrices. \n\n\n## Documentations\nThe documentation for Noisy Quantum Gates can be accessed on the website \n Read the Docs.\n\n\n## How to install\n### Requirements\nThe Python version should be 3.9 or later. Find your Python version by typing `python` or `python3` in the CLI. \nWe recommend using the repo together with an [IBM Quantum Lab](https://quantum-computing.ibm.com/lab) account, \nas it necessary for circuit compilation with Qiskit in many cases. \n\n\n### Installation as a user\nThe library is available on the Python Package Index (PyPI) with `pip install quantum-gates`. \n\n\n### Installation as a contributor\nFor users who want to have control over the source code, we recommend the following installation. Clone the repository \nfrom [Github](https://github.com/CERN-IT-INNOVATION/quantum-gates), create a new virtual environment, and activate the \nenvironment. Then you can build the wheel and install it with the package manager of your choice as described in the \nsection [How to contribute](#how-to-contribute). This will install all dependencies in your virtual environment, \nand install a working version of the library.\n\n\n## Quickstart\nExecute the following code in a script or notebook. Add your IBM token to by defining it as the variable \nIBM_TOKEN = "your_token". \n\n```python\n# Standard libraries\nimport numpy as np\nimport json\n\n# Qiskit\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.visualization import plot_histogram\n\n# Own library\nfrom quantum_gates.simulators import MrAndersonSimulator\nfrom quantum_gates.gates import standard_gates\nfrom quantum_gates.circuits import EfficientCircuit\nfrom quantum_gates.utilities import DeviceParameters\nfrom quantum_gates.utilities import setup_backend\nIBM_TOKEN = ""\n```\nWe create a quantum circuit with Qiskit. \n\n```python\ncirc = QuantumCircuit(2,2)\ncirc.h(0)\ncirc.cx(0,1)\ncirc.barrier(range(2))\ncirc.measure(range(2),range(2))\ncirc.draw(\'mpl\')\n```\n\nWe load the configuration from a json file or from code with\n```python\nconfig = {\n "backend": {\n "hub": "ibm-q",\n "group": "open",\n "project": "main",\n "device_name": "ibmq_manila"\n },\n "run": {\n "shots": 1000,\n "qubits_layout": [0, 1],\n "psi0": [1, 0, 0, 0]\n }\n}\n```\n... and setup the Qiskit backend used for the circuit transpilation.\n\n```python\nbackend_config = config["backend"]\nbackend = setup_backend(Token=IBM_TOKEN, **backend_config)\nrun_config = config["run"]\n```\n\nThis allows us to load the device parameters, which represent the noise of the quantum hardware. \n```python\nqubits_layout = run_config["qubits_layout"]\ndevice_param = DeviceParameters(qubits_layout)\ndevice_param.load_from_backend(backend)\ndevice_param_lookup = device_param.__dict__()\n```\n\nLast, we perform the simulation ... \n```python\nsim = MrAndersonSimulator(gates=standard_gates, CircuitClass=EfficientCircuit)\n\nt_circ = transpile(\n circ,\n backend,\n scheduling_method=\'asap\',\n initial_layout=qubits_layout,\n seed_transpiler=42\n)\n\nprobs = sim.run(\n t_qiskit_circ=t_circ, \n qubits_layout=qubits_layout, \n psi0=np.array(run_config["psi0"]), \n shots=run_config["shots"], \n device_param=device_param_lookup,\n nqubit=2)\n\ncounts_ng = {format(i, \'b\').zfill(2): probs[i] for i in range(0, 4)}\n```\n... and analyse the result. \n\n```python\nplot_histogram(counts_ng, bar_labels=False, legend=[\'Noisy Gates simulation\'])\n```\n\n\n# Usage\nWe recommend to read the [overview](https://quantum-gates.readthedocs.io/en/latest/index.html) of the documentation as a 2-minute preparation. \n\n\n## Imports\nThere are two ways of importing the package. 1) If you installed the code with pip, then the imports are simply of the form seen in the [Quickstart](<#quickstart>). \n\n```python\nfrom quantum_gates.simulators import MrAndersonSimulator\nfrom quantum_gates.gates import standard_gates\nfrom quantum_gates.circuits import EfficientCircuit\nfrom quantum_gates.utilities import DeviceParameters, setup_backend\n```\n\n2) If you use the source code directly and develop within the repository, then the imports become\n\n```python\nfrom src.quantum_gates._simulation.simulator import MrAndersonSimulator\nfrom src.quantum_gates._gates.gates import standard_gates\nfrom src.quantum_gates._simulation.circuit import EfficientCircuit\nfrom src.quantum_gates._utility.device_parameters import (\n DeviceParameters, \n setup_backend\n)\n``` \n\n\n# Functionality\nThe main components are the [gates](https://quantum-gates.readthedocs.io/en/latest/gates.html), \nand the [simulator](https://quantum-gates.readthedocs.io/en/latest/simulators.html). \nOne can configure the gates with different [pulse shapes](https://quantum-gates.readthedocs.io/en/latest/pulses.html>), \nand the simulator with different [circuit classes](https://quantum-gates.readthedocs.io/en/latest/circuits.html>) and \n[backends](https://quantum-gates.readthedocs.io/en/latest/backends.html). The circuit classes use a specific \nbackend for the statevector simulation. \nThe [EfficientBackend](https://quantum-gates.readthedocs.io/en/latest/backends.html) has the same functionality as \nthe [StandardBackend](https://quantum-gates.readthedocs.io/en/latest/backends.html), but is much more performant \nthanks to optimized tensor contraction algorithms. We also provide various\n[quantum algorithms](https://quantum-gates.readthedocs.io/en/latest/quantum_algorithms.html) as circuits, and \nscripts to run the circuits with the simulator, the IBM simulator, and a real IBM backend. Last, all functionality is \nunit tested and one can get sample code from the unit tests.\n\n\n# How to contribute\nContributions are welcomed and should apply the usual git-flow: fork this repo, create a local branch named \n\'feature-...\'. Commit often to ensure that each commit is easy to understand. Name your commits \n\'[feature-...] Commit message.\', such that it possible to differentiate the commits of different features in the \nmain line. Request a merge to the mainline often. Please remember to follow the \n[PEP 8 style guide](https://peps.python.org/pep-0008/), and add comments whenever it helps. The corresponding \n[authors](<#authors>) are happy to support you. \n\n\n## Build \nYou may also want to create your own distribution and test it. Navigate to the repository in your CLI of choice. \nBuild the wheel with the command `python3 -m build --sdist --wheel .` and navigate to the distribution with `cd dist`. \nUse `ls` to display the name of the wheel, and run `pip install .whl` with the correct filename. \nNow you can use your version of the library. \n\n\n# Authors\nThis project has been developed thanks to the effort of the following people:\n\n* Giovanni Di Bartolomeo (dibartolomeo.giov@gmail.com)\n* Michele Vischi (vischimichele@gmail.com)\n* Francesco Cesa\n* Michele Grossi (michele.grossi@cern.ch) \n* Sandro Donadi\n* Angelo Bassi \n* Roman Wixinger (roman.wixinger@gmail.com)\n'` 2023-03-02T15:36:01,898 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:01,898 consider this value unless 'readme' is listed as `dynamic`. 2023-03-02T15:36:01,898 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:01,899 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:01,899 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:01,899 follow strictly the standard. 2023-03-02T15:36:01,899 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-02T15:36:01,899 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:01,899 configuration. 2023-03-02T15:36:01,900 !! 2023-03-02T15:36:01,900 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:01,900 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'requires-python' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:01,900 !! 2023-03-02T15:36:01,901 ########################################################################## 2023-03-02T15:36:01,901 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:01,901 ########################################################################## 2023-03-02T15:36:01,901 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:01,901 `requires-python = '>=3.9'` 2023-03-02T15:36:01,902 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:01,902 consider this value unless 'requires-python' is listed as `dynamic`. 2023-03-02T15:36:01,902 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:01,902 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:01,903 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:01,903 follow strictly the standard. 2023-03-02T15:36:01,903 To prevent this warning, you can list 'requires-python' under `dynamic` or alternatively 2023-03-02T15:36:01,903 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:01,903 configuration. 2023-03-02T15:36:01,904 !! 2023-03-02T15:36:01,904 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:01,904 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:01,904 !! 2023-03-02T15:36:01,905 ########################################################################## 2023-03-02T15:36:01,905 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:01,905 ########################################################################## 2023-03-02T15:36:01,905 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:01,905 `license = 'MIT'` 2023-03-02T15:36:01,906 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:01,906 consider this value unless 'license' is listed as `dynamic`. 2023-03-02T15:36:01,906 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:01,906 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:01,906 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:01,907 follow strictly the standard. 2023-03-02T15:36:01,907 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-02T15:36:01,907 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:01,907 configuration. 2023-03-02T15:36:01,908 !! 2023-03-02T15:36:01,908 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:01,908 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:01,908 !! 2023-03-02T15:36:01,908 ########################################################################## 2023-03-02T15:36:01,908 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:01,909 ########################################################################## 2023-03-02T15:36:01,909 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:01,909 `classifiers = ['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Topic :: Scientific/Engineering :: Mathematics']` 2023-03-02T15:36:01,909 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:01,910 consider this value unless 'classifiers' is listed as `dynamic`. 2023-03-02T15:36:01,910 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:01,910 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:01,910 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:01,910 follow strictly the standard. 2023-03-02T15:36:01,911 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively 2023-03-02T15:36:01,911 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:01,911 configuration. 2023-03-02T15:36:01,911 !! 2023-03-02T15:36:01,912 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:02,195 running dist_info 2023-03-02T15:36:02,201 creating /tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info 2023-03-02T15:36:02,205 writing /tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/PKG-INFO 2023-03-02T15:36:02,208 writing dependency_links to /tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/dependency_links.txt 2023-03-02T15:36:02,211 writing requirements to /tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/requires.txt 2023-03-02T15:36:02,212 writing top-level names to /tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/top_level.txt 2023-03-02T15:36:02,214 writing manifest file '/tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:02,231 reading manifest file '/tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:02,234 reading manifest template 'MANIFEST.in' 2023-03-02T15:36:02,248 adding license file 'LICENSE' 2023-03-02T15:36:02,252 writing manifest file '/tmp/pip-modern-metadata-pf4ts_5k/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:02,253 creating '/tmp/pip-modern-metadata-pf4ts_5k/quantum_gates-1.0.3.dist-info' 2023-03-02T15:36:02,387 Preparing metadata (pyproject.toml): finished with status 'done' 2023-03-02T15:36:02,395 Source in /tmp/pip-wheel-hzvbd7no/quantum-gates_c4c7989fe5ce49edb79d40d69c9613c2 has version 1.0.3, which satisfies requirement quantum-gates==1.0.3 from https://files.pythonhosted.org/packages/8f/b3/e4bcc6c0dd0a1c3bb6bad3b95c805263b0dbc7cf8f91f85db3f7c8a28988/quantum-gates-1.0.3.tar.gz 2023-03-02T15:36:02,396 Removed quantum-gates==1.0.3 from https://files.pythonhosted.org/packages/8f/b3/e4bcc6c0dd0a1c3bb6bad3b95c805263b0dbc7cf8f91f85db3f7c8a28988/quantum-gates-1.0.3.tar.gz from build tracker '/tmp/pip-build-tracker-fdcweva1' 2023-03-02T15:36:02,402 Created temporary directory: /tmp/pip-unpack-f9s3ayjx 2023-03-02T15:36:02,403 Building wheels for collected packages: quantum-gates 2023-03-02T15:36:02,407 Created temporary directory: /tmp/pip-wheel-4h_butag 2023-03-02T15:36:02,407 Destination directory: /tmp/pip-wheel-4h_butag 2023-03-02T15:36:02,410 Building wheel for quantum-gates (pyproject.toml): started 2023-03-02T15:36:02,411 Running command Building wheel for quantum-gates (pyproject.toml) 2023-03-02T15:36:02,953 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:02,954 !! 2023-03-02T15:36:02,954 ########################################################################## 2023-03-02T15:36:02,954 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:02,954 ########################################################################## 2023-03-02T15:36:02,955 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:02,955 `readme = '# Noisy Quantum Gates [![Made at QMTS!](https://img.shields.io/badge/University%20of%20Trieste-Bassi%20Group-brightgreen)](http://www.qmts.it/) [![Made at CERN!](https://img.shields.io/badge/CERN-CERN%20openlab-brightgreen)](https://openlab.cern/) [![Made at CERN!](https://img.shields.io/badge/CERN-Open%20Source-%232980b9.svg)](https://home.cern) [![Made at CERN!](https://img.shields.io/badge/CERN-QTI-blue)](https://quantum.cern/our-governance)\n\nImplementation of the Noisy Quantum Gates model, which is soon to be published. It is a novel method to simulate the noisy behaviour of quantum devices by incorporating the noise directly in the gates, which become stochastic matrices. \n\n\n## Documentations\nThe documentation for Noisy Quantum Gates can be accessed on the website \n Read the Docs.\n\n\n## How to install\n### Requirements\nThe Python version should be 3.9 or later. Find your Python version by typing `python` or `python3` in the CLI. \nWe recommend using the repo together with an [IBM Quantum Lab](https://quantum-computing.ibm.com/lab) account, \nas it necessary for circuit compilation with Qiskit in many cases. \n\n\n### Installation as a user\nThe library is available on the Python Package Index (PyPI) with `pip install quantum-gates`. \n\n\n### Installation as a contributor\nFor users who want to have control over the source code, we recommend the following installation. Clone the repository \nfrom [Github](https://github.com/CERN-IT-INNOVATION/quantum-gates), create a new virtual environment, and activate the \nenvironment. Then you can build the wheel and install it with the package manager of your choice as described in the \nsection [How to contribute](#how-to-contribute). This will install all dependencies in your virtual environment, \nand install a working version of the library.\n\n\n## Quickstart\nExecute the following code in a script or notebook. Add your IBM token to by defining it as the variable \nIBM_TOKEN = "your_token". \n\n```python\n# Standard libraries\nimport numpy as np\nimport json\n\n# Qiskit\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.visualization import plot_histogram\n\n# Own library\nfrom quantum_gates.simulators import MrAndersonSimulator\nfrom quantum_gates.gates import standard_gates\nfrom quantum_gates.circuits import EfficientCircuit\nfrom quantum_gates.utilities import DeviceParameters\nfrom quantum_gates.utilities import setup_backend\nIBM_TOKEN = ""\n```\nWe create a quantum circuit with Qiskit. \n\n```python\ncirc = QuantumCircuit(2,2)\ncirc.h(0)\ncirc.cx(0,1)\ncirc.barrier(range(2))\ncirc.measure(range(2),range(2))\ncirc.draw(\'mpl\')\n```\n\nWe load the configuration from a json file or from code with\n```python\nconfig = {\n "backend": {\n "hub": "ibm-q",\n "group": "open",\n "project": "main",\n "device_name": "ibmq_manila"\n },\n "run": {\n "shots": 1000,\n "qubits_layout": [0, 1],\n "psi0": [1, 0, 0, 0]\n }\n}\n```\n... and setup the Qiskit backend used for the circuit transpilation.\n\n```python\nbackend_config = config["backend"]\nbackend = setup_backend(Token=IBM_TOKEN, **backend_config)\nrun_config = config["run"]\n```\n\nThis allows us to load the device parameters, which represent the noise of the quantum hardware. \n```python\nqubits_layout = run_config["qubits_layout"]\ndevice_param = DeviceParameters(qubits_layout)\ndevice_param.load_from_backend(backend)\ndevice_param_lookup = device_param.__dict__()\n```\n\nLast, we perform the simulation ... \n```python\nsim = MrAndersonSimulator(gates=standard_gates, CircuitClass=EfficientCircuit)\n\nt_circ = transpile(\n circ,\n backend,\n scheduling_method=\'asap\',\n initial_layout=qubits_layout,\n seed_transpiler=42\n)\n\nprobs = sim.run(\n t_qiskit_circ=t_circ, \n qubits_layout=qubits_layout, \n psi0=np.array(run_config["psi0"]), \n shots=run_config["shots"], \n device_param=device_param_lookup,\n nqubit=2)\n\ncounts_ng = {format(i, \'b\').zfill(2): probs[i] for i in range(0, 4)}\n```\n... and analyse the result. \n\n```python\nplot_histogram(counts_ng, bar_labels=False, legend=[\'Noisy Gates simulation\'])\n```\n\n\n# Usage\nWe recommend to read the [overview](https://quantum-gates.readthedocs.io/en/latest/index.html) of the documentation as a 2-minute preparation. \n\n\n## Imports\nThere are two ways of importing the package. 1) If you installed the code with pip, then the imports are simply of the form seen in the [Quickstart](<#quickstart>). \n\n```python\nfrom quantum_gates.simulators import MrAndersonSimulator\nfrom quantum_gates.gates import standard_gates\nfrom quantum_gates.circuits import EfficientCircuit\nfrom quantum_gates.utilities import DeviceParameters, setup_backend\n```\n\n2) If you use the source code directly and develop within the repository, then the imports become\n\n```python\nfrom src.quantum_gates._simulation.simulator import MrAndersonSimulator\nfrom src.quantum_gates._gates.gates import standard_gates\nfrom src.quantum_gates._simulation.circuit import EfficientCircuit\nfrom src.quantum_gates._utility.device_parameters import (\n DeviceParameters, \n setup_backend\n)\n``` \n\n\n# Functionality\nThe main components are the [gates](https://quantum-gates.readthedocs.io/en/latest/gates.html), \nand the [simulator](https://quantum-gates.readthedocs.io/en/latest/simulators.html). \nOne can configure the gates with different [pulse shapes](https://quantum-gates.readthedocs.io/en/latest/pulses.html>), \nand the simulator with different [circuit classes](https://quantum-gates.readthedocs.io/en/latest/circuits.html>) and \n[backends](https://quantum-gates.readthedocs.io/en/latest/backends.html). The circuit classes use a specific \nbackend for the statevector simulation. \nThe [EfficientBackend](https://quantum-gates.readthedocs.io/en/latest/backends.html) has the same functionality as \nthe [StandardBackend](https://quantum-gates.readthedocs.io/en/latest/backends.html), but is much more performant \nthanks to optimized tensor contraction algorithms. We also provide various\n[quantum algorithms](https://quantum-gates.readthedocs.io/en/latest/quantum_algorithms.html) as circuits, and \nscripts to run the circuits with the simulator, the IBM simulator, and a real IBM backend. Last, all functionality is \nunit tested and one can get sample code from the unit tests.\n\n\n# How to contribute\nContributions are welcomed and should apply the usual git-flow: fork this repo, create a local branch named \n\'feature-...\'. Commit often to ensure that each commit is easy to understand. Name your commits \n\'[feature-...] Commit message.\', such that it possible to differentiate the commits of different features in the \nmain line. Request a merge to the mainline often. Please remember to follow the \n[PEP 8 style guide](https://peps.python.org/pep-0008/), and add comments whenever it helps. The corresponding \n[authors](<#authors>) are happy to support you. \n\n\n## Build \nYou may also want to create your own distribution and test it. Navigate to the repository in your CLI of choice. \nBuild the wheel with the command `python3 -m build --sdist --wheel .` and navigate to the distribution with `cd dist`. \nUse `ls` to display the name of the wheel, and run `pip install .whl` with the correct filename. \nNow you can use your version of the library. \n\n\n# Authors\nThis project has been developed thanks to the effort of the following people:\n\n* Giovanni Di Bartolomeo (dibartolomeo.giov@gmail.com)\n* Michele Vischi (vischimichele@gmail.com)\n* Francesco Cesa\n* Michele Grossi (michele.grossi@cern.ch) \n* Sandro Donadi\n* Angelo Bassi \n* Roman Wixinger (roman.wixinger@gmail.com)\n'` 2023-03-02T15:36:02,955 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:02,955 consider this value unless 'readme' is listed as `dynamic`. 2023-03-02T15:36:02,956 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:02,956 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:02,956 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:02,956 follow strictly the standard. 2023-03-02T15:36:02,957 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-02T15:36:02,957 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:02,957 configuration. 2023-03-02T15:36:02,957 !! 2023-03-02T15:36:02,957 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:02,958 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'requires-python' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:02,958 !! 2023-03-02T15:36:02,958 ########################################################################## 2023-03-02T15:36:02,958 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:02,958 ########################################################################## 2023-03-02T15:36:02,959 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:02,959 `requires-python = '>=3.9'` 2023-03-02T15:36:02,959 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:02,959 consider this value unless 'requires-python' is listed as `dynamic`. 2023-03-02T15:36:02,960 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:02,960 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:02,960 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:02,960 follow strictly the standard. 2023-03-02T15:36:02,960 To prevent this warning, you can list 'requires-python' under `dynamic` or alternatively 2023-03-02T15:36:02,961 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:02,961 configuration. 2023-03-02T15:36:02,961 !! 2023-03-02T15:36:02,961 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:02,961 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:02,962 !! 2023-03-02T15:36:02,962 ########################################################################## 2023-03-02T15:36:02,962 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:02,962 ########################################################################## 2023-03-02T15:36:02,962 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:02,963 `license = 'MIT'` 2023-03-02T15:36:02,963 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:02,963 consider this value unless 'license' is listed as `dynamic`. 2023-03-02T15:36:02,963 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:02,964 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:02,964 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:02,964 follow strictly the standard. 2023-03-02T15:36:02,964 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-02T15:36:02,964 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:02,965 configuration. 2023-03-02T15:36:02,965 !! 2023-03-02T15:36:02,965 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:02,965 /tmp/pip-build-env-xjgusa3c/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored. 2023-03-02T15:36:02,965 !! 2023-03-02T15:36:02,966 ########################################################################## 2023-03-02T15:36:02,966 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-02T15:36:02,966 ########################################################################## 2023-03-02T15:36:02,966 The following seems to be defined outside of `pyproject.toml`: 2023-03-02T15:36:02,966 `classifiers = ['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Topic :: Scientific/Engineering :: Mathematics']` 2023-03-02T15:36:02,967 According to the spec (see the link below), however, setuptools CANNOT 2023-03-02T15:36:02,967 consider this value unless 'classifiers' is listed as `dynamic`. 2023-03-02T15:36:02,967 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-02T15:36:02,967 For the time being, `setuptools` will still consider the given value (as a 2023-03-02T15:36:02,968 **transitional** measure), but please note that future releases of setuptools will 2023-03-02T15:36:02,968 follow strictly the standard. 2023-03-02T15:36:02,968 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively 2023-03-02T15:36:02,968 remove the `[project]` table from your file and rely entirely on other means of 2023-03-02T15:36:02,968 configuration. 2023-03-02T15:36:02,969 !! 2023-03-02T15:36:02,969 warnings.warn(msg, _WouldIgnoreField) 2023-03-02T15:36:03,224 running bdist_wheel 2023-03-02T15:36:03,239 running build 2023-03-02T15:36:03,239 running build_py 2023-03-02T15:36:03,245 creating build 2023-03-02T15:36:03,246 creating build/lib 2023-03-02T15:36:03,247 creating build/lib/quantum_gates 2023-03-02T15:36:03,249 copying src/quantum_gates/circuits.py -> build/lib/quantum_gates 2023-03-02T15:36:03,251 copying src/quantum_gates/integrators.py -> build/lib/quantum_gates 2023-03-02T15:36:03,253 copying src/quantum_gates/__init__.py -> build/lib/quantum_gates 2023-03-02T15:36:03,255 copying src/quantum_gates/metrics.py -> build/lib/quantum_gates 2023-03-02T15:36:03,257 copying src/quantum_gates/simulators.py -> build/lib/quantum_gates 2023-03-02T15:36:03,259 copying src/quantum_gates/gates.py -> build/lib/quantum_gates 2023-03-02T15:36:03,261 copying src/quantum_gates/pulses.py -> build/lib/quantum_gates 2023-03-02T15:36:03,263 copying src/quantum_gates/backends.py -> build/lib/quantum_gates 2023-03-02T15:36:03,265 copying src/quantum_gates/quantum_algorithms.py -> build/lib/quantum_gates 2023-03-02T15:36:03,267 copying src/quantum_gates/factories.py -> build/lib/quantum_gates 2023-03-02T15:36:03,270 copying src/quantum_gates/utilities.py -> build/lib/quantum_gates 2023-03-02T15:36:03,272 creating build/lib/quantum_gates/_gates 2023-03-02T15:36:03,274 copying src/quantum_gates/_gates/integrator.py -> build/lib/quantum_gates/_gates 2023-03-02T15:36:03,276 copying src/quantum_gates/_gates/__init__.py -> build/lib/quantum_gates/_gates 2023-03-02T15:36:03,278 copying src/quantum_gates/_gates/gates.py -> build/lib/quantum_gates/_gates 2023-03-02T15:36:03,281 copying src/quantum_gates/_gates/pulse.py -> build/lib/quantum_gates/_gates 2023-03-02T15:36:03,283 copying src/quantum_gates/_gates/factories.py -> build/lib/quantum_gates/_gates 2023-03-02T15:36:03,287 creating build/lib/quantum_gates/_legacy 2023-03-02T15:36:03,288 copying src/quantum_gates/_legacy/simulator.py -> build/lib/quantum_gates/_legacy 2023-03-02T15:36:03,291 copying src/quantum_gates/_legacy/__init__.py -> build/lib/quantum_gates/_legacy 2023-03-02T15:36:03,293 copying src/quantum_gates/_legacy/gates.py -> build/lib/quantum_gates/_legacy 2023-03-02T15:36:03,296 copying src/quantum_gates/_legacy/circuit.py -> build/lib/quantum_gates/_legacy 2023-03-02T15:36:03,299 creating build/lib/quantum_gates/_simulation 2023-03-02T15:36:03,300 copying src/quantum_gates/_simulation/simulator.py -> build/lib/quantum_gates/_simulation 2023-03-02T15:36:03,303 copying src/quantum_gates/_simulation/__init__.py -> build/lib/quantum_gates/_simulation 2023-03-02T15:36:03,305 copying src/quantum_gates/_simulation/backend.py -> build/lib/quantum_gates/_simulation 2023-03-02T15:36:03,308 copying src/quantum_gates/_simulation/circuit.py -> build/lib/quantum_gates/_simulation 2023-03-02T15:36:03,311 creating build/lib/quantum_gates/_utility 2023-03-02T15:36:03,312 copying src/quantum_gates/_utility/device_parameters.py -> build/lib/quantum_gates/_utility 2023-03-02T15:36:03,315 copying src/quantum_gates/_utility/__init__.py -> build/lib/quantum_gates/_utility 2023-03-02T15:36:03,317 copying src/quantum_gates/_utility/quantum_algorithms.py -> build/lib/quantum_gates/_utility 2023-03-02T15:36:03,319 copying src/quantum_gates/_utility/simulations_utility.py -> build/lib/quantum_gates/_utility 2023-03-02T15:36:03,322 running egg_info 2023-03-02T15:36:03,330 writing src/quantum_gates.egg-info/PKG-INFO 2023-03-02T15:36:03,333 writing dependency_links to src/quantum_gates.egg-info/dependency_links.txt 2023-03-02T15:36:03,335 writing requirements to src/quantum_gates.egg-info/requires.txt 2023-03-02T15:36:03,337 writing top-level names to src/quantum_gates.egg-info/top_level.txt 2023-03-02T15:36:03,348 reading manifest file 'src/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:03,351 reading manifest template 'MANIFEST.in' 2023-03-02T15:36:03,366 adding license file 'LICENSE' 2023-03-02T15:36:03,371 writing manifest file 'src/quantum_gates.egg-info/SOURCES.txt' 2023-03-02T15:36:03,386 installing to build/bdist.linux-armv7l/wheel 2023-03-02T15:36:03,386 running install 2023-03-02T15:36:03,411 running install_lib 2023-03-02T15:36:03,417 creating build/bdist.linux-armv7l 2023-03-02T15:36:03,418 creating build/bdist.linux-armv7l/wheel 2023-03-02T15:36:03,420 creating build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,422 creating build/bdist.linux-armv7l/wheel/quantum_gates/_legacy 2023-03-02T15:36:03,423 copying build/lib/quantum_gates/_legacy/simulator.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy 2023-03-02T15:36:03,426 copying build/lib/quantum_gates/_legacy/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy 2023-03-02T15:36:03,429 copying build/lib/quantum_gates/_legacy/gates.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy 2023-03-02T15:36:03,432 copying build/lib/quantum_gates/_legacy/circuit.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy 2023-03-02T15:36:03,435 copying build/lib/quantum_gates/circuits.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,437 copying build/lib/quantum_gates/integrators.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,439 copying build/lib/quantum_gates/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,441 copying build/lib/quantum_gates/metrics.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,444 copying build/lib/quantum_gates/simulators.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,447 creating build/bdist.linux-armv7l/wheel/quantum_gates/_utility 2023-03-02T15:36:03,448 copying build/lib/quantum_gates/_utility/device_parameters.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility 2023-03-02T15:36:03,451 copying build/lib/quantum_gates/_utility/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility 2023-03-02T15:36:03,453 copying build/lib/quantum_gates/_utility/quantum_algorithms.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility 2023-03-02T15:36:03,456 copying build/lib/quantum_gates/_utility/simulations_utility.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility 2023-03-02T15:36:03,459 creating build/bdist.linux-armv7l/wheel/quantum_gates/_gates 2023-03-02T15:36:03,460 copying build/lib/quantum_gates/_gates/integrator.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates 2023-03-02T15:36:03,464 copying build/lib/quantum_gates/_gates/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates 2023-03-02T15:36:03,466 copying build/lib/quantum_gates/_gates/gates.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates 2023-03-02T15:36:03,468 copying build/lib/quantum_gates/_gates/pulse.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates 2023-03-02T15:36:03,471 copying build/lib/quantum_gates/_gates/factories.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates 2023-03-02T15:36:03,475 copying build/lib/quantum_gates/gates.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,477 copying build/lib/quantum_gates/pulses.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,479 copying build/lib/quantum_gates/backends.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,482 copying build/lib/quantum_gates/quantum_algorithms.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,484 copying build/lib/quantum_gates/factories.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,487 copying build/lib/quantum_gates/utilities.py -> build/bdist.linux-armv7l/wheel/quantum_gates 2023-03-02T15:36:03,489 creating build/bdist.linux-armv7l/wheel/quantum_gates/_simulation 2023-03-02T15:36:03,491 copying build/lib/quantum_gates/_simulation/simulator.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation 2023-03-02T15:36:03,494 copying build/lib/quantum_gates/_simulation/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation 2023-03-02T15:36:03,496 copying build/lib/quantum_gates/_simulation/backend.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation 2023-03-02T15:36:03,499 copying build/lib/quantum_gates/_simulation/circuit.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation 2023-03-02T15:36:03,502 running install_egg_info 2023-03-02T15:36:03,507 Copying src/quantum_gates.egg-info to build/bdist.linux-armv7l/wheel/quantum_gates-1.0.3-py3.9.egg-info 2023-03-02T15:36:03,521 running install_scripts 2023-03-02T15:36:03,541 creating build/bdist.linux-armv7l/wheel/quantum_gates-1.0.3.dist-info/WHEEL 2023-03-02T15:36:03,544 creating '/tmp/pip-wheel-4h_butag/.tmp-y93gk8cx/quantum_gates-1.0.3-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-03-02T15:36:03,547 adding 'quantum_gates/__init__.py' 2023-03-02T15:36:03,549 adding 'quantum_gates/backends.py' 2023-03-02T15:36:03,551 adding 'quantum_gates/circuits.py' 2023-03-02T15:36:03,552 adding 'quantum_gates/factories.py' 2023-03-02T15:36:03,554 adding 'quantum_gates/gates.py' 2023-03-02T15:36:03,555 adding 'quantum_gates/integrators.py' 2023-03-02T15:36:03,557 adding 'quantum_gates/metrics.py' 2023-03-02T15:36:03,558 adding 'quantum_gates/pulses.py' 2023-03-02T15:36:03,560 adding 'quantum_gates/quantum_algorithms.py' 2023-03-02T15:36:03,561 adding 'quantum_gates/simulators.py' 2023-03-02T15:36:03,563 adding 'quantum_gates/utilities.py' 2023-03-02T15:36:03,565 adding 'quantum_gates/_gates/__init__.py' 2023-03-02T15:36:03,568 adding 'quantum_gates/_gates/factories.py' 2023-03-02T15:36:03,571 adding 'quantum_gates/_gates/gates.py' 2023-03-02T15:36:03,573 adding 'quantum_gates/_gates/integrator.py' 2023-03-02T15:36:03,575 adding 'quantum_gates/_gates/pulse.py' 2023-03-02T15:36:03,577 adding 'quantum_gates/_legacy/__init__.py' 2023-03-02T15:36:03,579 adding 'quantum_gates/_legacy/circuit.py' 2023-03-02T15:36:03,582 adding 'quantum_gates/_legacy/gates.py' 2023-03-02T15:36:03,584 adding 'quantum_gates/_legacy/simulator.py' 2023-03-02T15:36:03,587 adding 'quantum_gates/_simulation/__init__.py' 2023-03-02T15:36:03,589 adding 'quantum_gates/_simulation/backend.py' 2023-03-02T15:36:03,592 adding 'quantum_gates/_simulation/circuit.py' 2023-03-02T15:36:03,594 adding 'quantum_gates/_simulation/simulator.py' 2023-03-02T15:36:03,597 adding 'quantum_gates/_utility/__init__.py' 2023-03-02T15:36:03,599 adding 'quantum_gates/_utility/device_parameters.py' 2023-03-02T15:36:03,601 adding 'quantum_gates/_utility/quantum_algorithms.py' 2023-03-02T15:36:03,603 adding 'quantum_gates/_utility/simulations_utility.py' 2023-03-02T15:36:03,606 adding 'quantum_gates-1.0.3.dist-info/LICENSE' 2023-03-02T15:36:03,608 adding 'quantum_gates-1.0.3.dist-info/METADATA' 2023-03-02T15:36:03,609 adding 'quantum_gates-1.0.3.dist-info/WHEEL' 2023-03-02T15:36:03,611 adding 'quantum_gates-1.0.3.dist-info/top_level.txt' 2023-03-02T15:36:03,612 adding 'quantum_gates-1.0.3.dist-info/RECORD' 2023-03-02T15:36:03,615 removing build/bdist.linux-armv7l/wheel 2023-03-02T15:36:03,725 Building wheel for quantum-gates (pyproject.toml): finished with status 'done' 2023-03-02T15:36:03,732 Created wheel for quantum-gates: filename=quantum_gates-1.0.3-py3-none-any.whl size=45647 sha256=89d62df18c56f5b7889588a5f3c0d9fde65643cdcdbb22aa0c2900ea7d0aaf23 2023-03-02T15:36:03,733 Stored in directory: /tmp/pip-ephem-wheel-cache-dbbsrac1/wheels/79/cc/ee/032e619da9180dba5502fba38f79304928bfb12d725814f6e5 2023-03-02T15:36:03,747 Successfully built quantum-gates 2023-03-02T15:36:03,752 Removed build tracker: '/tmp/pip-build-tracker-fdcweva1'