2023-02-02T21:17:49,422 Created temporary directory: /tmp/pip-ephem-wheel-cache-0jsdmv_1
2023-02-02T21:17:49,424 Created temporary directory: /tmp/pip-build-tracker-qvljjqze
2023-02-02T21:17:49,424 Initialized build tracking at /tmp/pip-build-tracker-qvljjqze
2023-02-02T21:17:49,424 Created build tracker: /tmp/pip-build-tracker-qvljjqze
2023-02-02T21:17:49,424 Entered build tracker: /tmp/pip-build-tracker-qvljjqze
2023-02-02T21:17:49,425 Created temporary directory: /tmp/pip-wheel-gvn2hkp7
2023-02-02T21:17:49,428 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-02-02T21:17:49,431 Created temporary directory: /tmp/pip-ephem-wheel-cache-qhnfcp93
2023-02-02T21:17:49,458 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
2023-02-02T21:17:49,461 2 location(s) to search for versions of quantum-gates:
2023-02-02T21:17:49,461 * https://pypi.org/simple/quantum-gates/
2023-02-02T21:17:49,461 * https://www.piwheels.org/simple/quantum-gates/
2023-02-02T21:17:49,461 Fetching project page and analyzing links: https://pypi.org/simple/quantum-gates/
2023-02-02T21:17:49,462 Getting page https://pypi.org/simple/quantum-gates/
2023-02-02T21:17:49,463 Found index url https://pypi.org/simple
2023-02-02T21:17:49,526 Fetched page https://pypi.org/simple/quantum-gates/ as application/vnd.pypi.simple.v1+json
2023-02-02T21:17:49,528 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-02-02T21:17:49,529 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-02-02T21:17:49,529 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-02-02T21:17:49,529 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-02-02T21:17:49,530 Fetching project page and analyzing links: https://www.piwheels.org/simple/quantum-gates/
2023-02-02T21:17:49,530 Getting page https://www.piwheels.org/simple/quantum-gates/
2023-02-02T21:17:49,531 Found index url https://www.piwheels.org/simple
2023-02-02T21:17:49,702 Fetched page https://www.piwheels.org/simple/quantum-gates/ as text/html
2023-02-02T21:17:49,703 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-02-02T21:17:49,703 Skipping link: not a file: https://www.piwheels.org/simple/quantum-gates/
2023-02-02T21:17:49,704 Skipping link: not a file: https://pypi.org/simple/quantum-gates/
2023-02-02T21:17:49,722 Given no hashes to check 1 links for project 'quantum-gates': discarding no candidates
2023-02-02T21:17:49,739 Collecting quantum-gates==1.0.1
2023-02-02T21:17:49,741 Created temporary directory: /tmp/pip-unpack-x536aycn
2023-02-02T21:17:49,944 Downloading quantum-gates-1.0.1.tar.gz (51 kB)
2023-02-02T21:17:50,096 Added quantum-gates==1.0.1 from https://files.pythonhosted.org/packages/c3/3d/75868bcd7fb640ff6766a01a01808eb4ba9ee705c2367426886f6d991214/quantum-gates-1.0.1.tar.gz to build tracker '/tmp/pip-build-tracker-qvljjqze'
2023-02-02T21:17:50,102 Created temporary directory: /tmp/pip-build-env-yjcon42p
2023-02-02T21:17:50,110 Installing build dependencies: started
2023-02-02T21:17:50,111 Running command pip subprocess to install build dependencies
2023-02-02T21:17:51,347 Using pip 22.3 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)
2023-02-02T21:17:51,770 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-02-02T21:17:51,795 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
2023-02-02T21:17:53,509 Collecting setuptools>=42
2023-02-02T21:17:53,612 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.1.0-py3-none-any.whl (1.1 MB)
2023-02-02T21:17:53,879 Collecting wheel
2023-02-02T21:17:53,897 Using cached https://www.piwheels.org/simple/wheel/wheel-0.38.4-py3-none-any.whl (36 kB)
2023-02-02T21:17:54,035 Collecting flit_core<4,>=3.2
2023-02-02T21:17:54,055 Using cached https://www.piwheels.org/simple/flit-core/flit_core-3.8.0-py3-none-any.whl (62 kB)
2023-02-02T21:17:56,428 Installing collected packages: wheel, setuptools, flit_core
2023-02-02T21:17:56,575 Creating /tmp/pip-build-env-yjcon42p/overlay/bin
2023-02-02T21:17:56,577 changing mode of /tmp/pip-build-env-yjcon42p/overlay/bin/wheel to 755
2023-02-02T21:17:59,160 Successfully installed flit_core-3.8.0 setuptools-67.1.0 wheel-0.38.4
2023-02-02T21:17:59,177 [notice] A new release of pip available: 22.3 -> 23.0
2023-02-02T21:17:59,177 [notice] To update, run: python3 -m pip install --upgrade pip
2023-02-02T21:17:59,448 Installing build dependencies: finished with status 'done'
2023-02-02T21:17:59,454 Getting requirements to build wheel: started
2023-02-02T21:17:59,455 Running command Getting requirements to build wheel
2023-02-02T21:18:00,203 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:00,204 !!
2023-02-02T21:18:00,204 ##########################################################################
2023-02-02T21:18:00,204 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:00,204 ##########################################################################
2023-02-02T21:18:00,205 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:00,205 `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-docs.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-02-02T21:18:00,206 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:00,206 consider this value unless 'readme' is listed as `dynamic`.
2023-02-02T21:18:00,206 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:00,206 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:00,206 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:00,207 follow strictly the standard.
2023-02-02T21:18:00,207 To prevent this warning, you can list 'readme' under `dynamic` or alternatively
2023-02-02T21:18:00,207 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:00,207 configuration.
2023-02-02T21:18:00,207 !!
2023-02-02T21:18:00,208 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:00,208 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'requires-python' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:00,208 !!
2023-02-02T21:18:00,208 ##########################################################################
2023-02-02T21:18:00,208 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:00,209 ##########################################################################
2023-02-02T21:18:00,209 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:00,209 `requires-python = '>=3.9'`
2023-02-02T21:18:00,209 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:00,210 consider this value unless 'requires-python' is listed as `dynamic`.
2023-02-02T21:18:00,210 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:00,210 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:00,210 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:00,210 follow strictly the standard.
2023-02-02T21:18:00,211 To prevent this warning, you can list 'requires-python' under `dynamic` or alternatively
2023-02-02T21:18:00,211 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:00,211 configuration.
2023-02-02T21:18:00,211 !!
2023-02-02T21:18:00,212 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:00,212 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:00,212 !!
2023-02-02T21:18:00,212 ##########################################################################
2023-02-02T21:18:00,212 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:00,213 ##########################################################################
2023-02-02T21:18:00,213 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:00,213 `license = 'MIT'`
2023-02-02T21:18:00,213 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:00,213 consider this value unless 'license' is listed as `dynamic`.
2023-02-02T21:18:00,214 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:00,214 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:00,214 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:00,214 follow strictly the standard.
2023-02-02T21:18:00,214 To prevent this warning, you can list 'license' under `dynamic` or alternatively
2023-02-02T21:18:00,215 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:00,215 configuration.
2023-02-02T21:18:00,215 !!
2023-02-02T21:18:00,215 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:00,216 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:00,216 !!
2023-02-02T21:18:00,216 ##########################################################################
2023-02-02T21:18:00,216 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:00,216 ##########################################################################
2023-02-02T21:18:00,217 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:00,217 `classifiers = ['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Topic :: Scientific/Engineering :: Mathematics']`
2023-02-02T21:18:00,217 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:00,217 consider this value unless 'classifiers' is listed as `dynamic`.
2023-02-02T21:18:00,217 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:00,218 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:00,218 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:00,218 follow strictly the standard.
2023-02-02T21:18:00,218 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively
2023-02-02T21:18:00,218 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:00,218 configuration.
2023-02-02T21:18:00,219 !!
2023-02-02T21:18:00,219 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:00,424 running egg_info
2023-02-02T21:18:00,429 writing src/quantum_gates.egg-info/PKG-INFO
2023-02-02T21:18:00,432 writing dependency_links to src/quantum_gates.egg-info/dependency_links.txt
2023-02-02T21:18:00,435 writing requirements to src/quantum_gates.egg-info/requires.txt
2023-02-02T21:18:00,437 writing top-level names to src/quantum_gates.egg-info/top_level.txt
2023-02-02T21:18:00,457 reading manifest file 'src/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:00,463 reading manifest template 'MANIFEST.in'
2023-02-02T21:18:00,473 adding license file 'LICENSE'
2023-02-02T21:18:00,478 writing manifest file 'src/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:00,575 Getting requirements to build wheel: finished with status 'done'
2023-02-02T21:18:00,585 Created temporary directory: /tmp/pip-modern-metadata-5z_0gmtz
2023-02-02T21:18:00,588 Preparing metadata (pyproject.toml): started
2023-02-02T21:18:00,589 Running command Preparing metadata (pyproject.toml)
2023-02-02T21:18:01,217 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:01,218 !!
2023-02-02T21:18:01,218 ##########################################################################
2023-02-02T21:18:01,218 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:01,218 ##########################################################################
2023-02-02T21:18:01,219 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:01,219 `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-docs.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-02-02T21:18:01,219 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:01,220 consider this value unless 'readme' is listed as `dynamic`.
2023-02-02T21:18:01,220 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:01,220 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:01,220 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:01,220 follow strictly the standard.
2023-02-02T21:18:01,221 To prevent this warning, you can list 'readme' under `dynamic` or alternatively
2023-02-02T21:18:01,221 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:01,221 configuration.
2023-02-02T21:18:01,221 !!
2023-02-02T21:18:01,222 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:01,222 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'requires-python' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:01,222 !!
2023-02-02T21:18:01,222 ##########################################################################
2023-02-02T21:18:01,222 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:01,222 ##########################################################################
2023-02-02T21:18:01,223 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:01,223 `requires-python = '>=3.9'`
2023-02-02T21:18:01,223 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:01,224 consider this value unless 'requires-python' is listed as `dynamic`.
2023-02-02T21:18:01,224 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:01,224 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:01,224 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:01,224 follow strictly the standard.
2023-02-02T21:18:01,225 To prevent this warning, you can list 'requires-python' under `dynamic` or alternatively
2023-02-02T21:18:01,225 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:01,225 configuration.
2023-02-02T21:18:01,225 !!
2023-02-02T21:18:01,226 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:01,226 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:01,226 !!
2023-02-02T21:18:01,226 ##########################################################################
2023-02-02T21:18:01,227 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:01,227 ##########################################################################
2023-02-02T21:18:01,227 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:01,227 `license = 'MIT'`
2023-02-02T21:18:01,228 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:01,228 consider this value unless 'license' is listed as `dynamic`.
2023-02-02T21:18:01,228 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:01,228 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:01,228 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:01,229 follow strictly the standard.
2023-02-02T21:18:01,229 To prevent this warning, you can list 'license' under `dynamic` or alternatively
2023-02-02T21:18:01,229 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:01,229 configuration.
2023-02-02T21:18:01,230 !!
2023-02-02T21:18:01,230 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:01,230 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:01,230 !!
2023-02-02T21:18:01,231 ##########################################################################
2023-02-02T21:18:01,231 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:01,231 ##########################################################################
2023-02-02T21:18:01,231 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:01,231 `classifiers = ['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Topic :: Scientific/Engineering :: Mathematics']`
2023-02-02T21:18:01,232 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:01,232 consider this value unless 'classifiers' is listed as `dynamic`.
2023-02-02T21:18:01,232 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:01,232 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:01,233 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:01,233 follow strictly the standard.
2023-02-02T21:18:01,233 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively
2023-02-02T21:18:01,233 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:01,233 configuration.
2023-02-02T21:18:01,233 !!
2023-02-02T21:18:01,234 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:01,458 running dist_info
2023-02-02T21:18:01,464 creating /tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info
2023-02-02T21:18:01,468 writing /tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/PKG-INFO
2023-02-02T21:18:01,472 writing dependency_links to /tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/dependency_links.txt
2023-02-02T21:18:01,474 writing requirements to /tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/requires.txt
2023-02-02T21:18:01,475 writing top-level names to /tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/top_level.txt
2023-02-02T21:18:01,477 writing manifest file '/tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:01,494 reading manifest file '/tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:01,496 reading manifest template 'MANIFEST.in'
2023-02-02T21:18:01,505 adding license file 'LICENSE'
2023-02-02T21:18:01,508 writing manifest file '/tmp/pip-modern-metadata-5z_0gmtz/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:01,509 creating '/tmp/pip-modern-metadata-5z_0gmtz/quantum_gates-1.0.1.dist-info'
2023-02-02T21:18:01,644 Preparing metadata (pyproject.toml): finished with status 'done'
2023-02-02T21:18:01,651 Source in /tmp/pip-wheel-gvn2hkp7/quantum-gates_83120538982747da948881ac2442baac has version 1.0.1, which satisfies requirement quantum-gates==1.0.1 from https://files.pythonhosted.org/packages/c3/3d/75868bcd7fb640ff6766a01a01808eb4ba9ee705c2367426886f6d991214/quantum-gates-1.0.1.tar.gz
2023-02-02T21:18:01,652 Removed quantum-gates==1.0.1 from https://files.pythonhosted.org/packages/c3/3d/75868bcd7fb640ff6766a01a01808eb4ba9ee705c2367426886f6d991214/quantum-gates-1.0.1.tar.gz from build tracker '/tmp/pip-build-tracker-qvljjqze'
2023-02-02T21:18:01,659 Created temporary directory: /tmp/pip-unpack-2tbr4_xn
2023-02-02T21:18:01,659 Building wheels for collected packages: quantum-gates
2023-02-02T21:18:01,664 Created temporary directory: /tmp/pip-wheel-vvngwv03
2023-02-02T21:18:01,664 Destination directory: /tmp/pip-wheel-vvngwv03
2023-02-02T21:18:01,666 Building wheel for quantum-gates (pyproject.toml): started
2023-02-02T21:18:01,667 Running command Building wheel for quantum-gates (pyproject.toml)
2023-02-02T21:18:02,300 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:02,300 !!
2023-02-02T21:18:02,301 ##########################################################################
2023-02-02T21:18:02,301 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:02,301 ##########################################################################
2023-02-02T21:18:02,301 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:02,302 `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-docs.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-02-02T21:18:02,302 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:02,302 consider this value unless 'readme' is listed as `dynamic`.
2023-02-02T21:18:02,303 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:02,303 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:02,303 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:02,303 follow strictly the standard.
2023-02-02T21:18:02,304 To prevent this warning, you can list 'readme' under `dynamic` or alternatively
2023-02-02T21:18:02,304 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:02,304 configuration.
2023-02-02T21:18:02,304 !!
2023-02-02T21:18:02,305 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:02,305 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'requires-python' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:02,305 !!
2023-02-02T21:18:02,305 ##########################################################################
2023-02-02T21:18:02,305 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:02,305 ##########################################################################
2023-02-02T21:18:02,306 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:02,306 `requires-python = '>=3.9'`
2023-02-02T21:18:02,306 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:02,307 consider this value unless 'requires-python' is listed as `dynamic`.
2023-02-02T21:18:02,307 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:02,307 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:02,307 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:02,307 follow strictly the standard.
2023-02-02T21:18:02,308 To prevent this warning, you can list 'requires-python' under `dynamic` or alternatively
2023-02-02T21:18:02,308 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:02,308 configuration.
2023-02-02T21:18:02,308 !!
2023-02-02T21:18:02,309 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:02,309 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:02,309 !!
2023-02-02T21:18:02,309 ##########################################################################
2023-02-02T21:18:02,309 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:02,310 ##########################################################################
2023-02-02T21:18:02,310 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:02,310 `license = 'MIT'`
2023-02-02T21:18:02,310 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:02,311 consider this value unless 'license' is listed as `dynamic`.
2023-02-02T21:18:02,311 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:02,311 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:02,311 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:02,311 follow strictly the standard.
2023-02-02T21:18:02,312 To prevent this warning, you can list 'license' under `dynamic` or alternatively
2023-02-02T21:18:02,312 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:02,312 configuration.
2023-02-02T21:18:02,312 !!
2023-02-02T21:18:02,313 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:02,313 /tmp/pip-build-env-yjcon42p/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored.
2023-02-02T21:18:02,313 !!
2023-02-02T21:18:02,313 ##########################################################################
2023-02-02T21:18:02,314 # configuration would be ignored/result in error due to `pyproject.toml` #
2023-02-02T21:18:02,314 ##########################################################################
2023-02-02T21:18:02,314 The following seems to be defined outside of `pyproject.toml`:
2023-02-02T21:18:02,314 `classifiers = ['Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: Unix', 'Topic :: Scientific/Engineering :: Mathematics']`
2023-02-02T21:18:02,314 According to the spec (see the link below), however, setuptools CANNOT
2023-02-02T21:18:02,315 consider this value unless 'classifiers' is listed as `dynamic`.
2023-02-02T21:18:02,315 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
2023-02-02T21:18:02,315 For the time being, `setuptools` will still consider the given value (as a
2023-02-02T21:18:02,315 **transitional** measure), but please note that future releases of setuptools will
2023-02-02T21:18:02,315 follow strictly the standard.
2023-02-02T21:18:02,316 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively
2023-02-02T21:18:02,316 remove the `[project]` table from your file and rely entirely on other means of
2023-02-02T21:18:02,316 configuration.
2023-02-02T21:18:02,316 !!
2023-02-02T21:18:02,316 warnings.warn(msg, _WouldIgnoreField)
2023-02-02T21:18:02,495 running bdist_wheel
2023-02-02T21:18:02,510 running build
2023-02-02T21:18:02,510 running build_py
2023-02-02T21:18:02,516 creating build
2023-02-02T21:18:02,516 creating build/lib
2023-02-02T21:18:02,517 creating build/lib/quantum_gates
2023-02-02T21:18:02,518 copying src/quantum_gates/backends.py -> build/lib/quantum_gates
2023-02-02T21:18:02,520 copying src/quantum_gates/pulses.py -> build/lib/quantum_gates
2023-02-02T21:18:02,522 copying src/quantum_gates/circuits.py -> build/lib/quantum_gates
2023-02-02T21:18:02,524 copying src/quantum_gates/integrators.py -> build/lib/quantum_gates
2023-02-02T21:18:02,526 copying src/quantum_gates/__init__.py -> build/lib/quantum_gates
2023-02-02T21:18:02,528 copying src/quantum_gates/simulators.py -> build/lib/quantum_gates
2023-02-02T21:18:02,530 copying src/quantum_gates/utilities.py -> build/lib/quantum_gates
2023-02-02T21:18:02,532 copying src/quantum_gates/quantum_algorithms.py -> build/lib/quantum_gates
2023-02-02T21:18:02,533 copying src/quantum_gates/metrics.py -> build/lib/quantum_gates
2023-02-02T21:18:02,535 copying src/quantum_gates/factories.py -> build/lib/quantum_gates
2023-02-02T21:18:02,537 copying src/quantum_gates/gates.py -> build/lib/quantum_gates
2023-02-02T21:18:02,540 creating build/lib/quantum_gates/_gates
2023-02-02T21:18:02,540 copying src/quantum_gates/_gates/integrator.py -> build/lib/quantum_gates/_gates
2023-02-02T21:18:02,543 copying src/quantum_gates/_gates/pulse.py -> build/lib/quantum_gates/_gates
2023-02-02T21:18:02,545 copying src/quantum_gates/_gates/__init__.py -> build/lib/quantum_gates/_gates
2023-02-02T21:18:02,547 copying src/quantum_gates/_gates/factories.py -> build/lib/quantum_gates/_gates
2023-02-02T21:18:02,549 copying src/quantum_gates/_gates/gates.py -> build/lib/quantum_gates/_gates
2023-02-02T21:18:02,553 creating build/lib/quantum_gates/_legacy
2023-02-02T21:18:02,553 copying src/quantum_gates/_legacy/circuit.py -> build/lib/quantum_gates/_legacy
2023-02-02T21:18:02,556 copying src/quantum_gates/_legacy/simulator.py -> build/lib/quantum_gates/_legacy
2023-02-02T21:18:02,558 copying src/quantum_gates/_legacy/__init__.py -> build/lib/quantum_gates/_legacy
2023-02-02T21:18:02,560 copying src/quantum_gates/_legacy/gates.py -> build/lib/quantum_gates/_legacy
2023-02-02T21:18:02,564 creating build/lib/quantum_gates/_simulation
2023-02-02T21:18:02,565 copying src/quantum_gates/_simulation/backend.py -> build/lib/quantum_gates/_simulation
2023-02-02T21:18:02,567 copying src/quantum_gates/_simulation/circuit.py -> build/lib/quantum_gates/_simulation
2023-02-02T21:18:02,570 copying src/quantum_gates/_simulation/simulator.py -> build/lib/quantum_gates/_simulation
2023-02-02T21:18:02,573 copying src/quantum_gates/_simulation/__init__.py -> build/lib/quantum_gates/_simulation
2023-02-02T21:18:02,575 creating build/lib/quantum_gates/_utility
2023-02-02T21:18:02,576 copying src/quantum_gates/_utility/simulations_utility.py -> build/lib/quantum_gates/_utility
2023-02-02T21:18:02,578 copying src/quantum_gates/_utility/device_parameters.py -> build/lib/quantum_gates/_utility
2023-02-02T21:18:02,581 copying src/quantum_gates/_utility/__init__.py -> build/lib/quantum_gates/_utility
2023-02-02T21:18:02,583 copying src/quantum_gates/_utility/quantum_algorithms.py -> build/lib/quantum_gates/_utility
2023-02-02T21:18:02,584 running egg_info
2023-02-02T21:18:02,593 writing src/quantum_gates.egg-info/PKG-INFO
2023-02-02T21:18:02,595 writing dependency_links to src/quantum_gates.egg-info/dependency_links.txt
2023-02-02T21:18:02,597 writing requirements to src/quantum_gates.egg-info/requires.txt
2023-02-02T21:18:02,598 writing top-level names to src/quantum_gates.egg-info/top_level.txt
2023-02-02T21:18:02,608 reading manifest file 'src/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:02,611 reading manifest template 'MANIFEST.in'
2023-02-02T21:18:02,620 adding license file 'LICENSE'
2023-02-02T21:18:02,624 writing manifest file 'src/quantum_gates.egg-info/SOURCES.txt'
2023-02-02T21:18:02,637 installing to build/bdist.linux-armv7l/wheel
2023-02-02T21:18:02,638 running install
2023-02-02T21:18:02,663 running install_lib
2023-02-02T21:18:02,668 creating build/bdist.linux-armv7l
2023-02-02T21:18:02,669 creating build/bdist.linux-armv7l/wheel
2023-02-02T21:18:02,670 creating build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,672 creating build/bdist.linux-armv7l/wheel/quantum_gates/_gates
2023-02-02T21:18:02,673 copying build/lib/quantum_gates/_gates/integrator.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates
2023-02-02T21:18:02,675 copying build/lib/quantum_gates/_gates/pulse.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates
2023-02-02T21:18:02,678 copying build/lib/quantum_gates/_gates/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates
2023-02-02T21:18:02,679 copying build/lib/quantum_gates/_gates/factories.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates
2023-02-02T21:18:02,683 copying build/lib/quantum_gates/_gates/gates.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_gates
2023-02-02T21:18:02,686 copying build/lib/quantum_gates/backends.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,689 creating build/bdist.linux-armv7l/wheel/quantum_gates/_utility
2023-02-02T21:18:02,690 copying build/lib/quantum_gates/_utility/simulations_utility.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility
2023-02-02T21:18:02,692 copying build/lib/quantum_gates/_utility/device_parameters.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility
2023-02-02T21:18:02,695 copying build/lib/quantum_gates/_utility/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility
2023-02-02T21:18:02,696 copying build/lib/quantum_gates/_utility/quantum_algorithms.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_utility
2023-02-02T21:18:02,698 copying build/lib/quantum_gates/pulses.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,701 creating build/bdist.linux-armv7l/wheel/quantum_gates/_simulation
2023-02-02T21:18:02,701 copying build/lib/quantum_gates/_simulation/backend.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation
2023-02-02T21:18:02,704 copying build/lib/quantum_gates/_simulation/circuit.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation
2023-02-02T21:18:02,707 copying build/lib/quantum_gates/_simulation/simulator.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation
2023-02-02T21:18:02,710 copying build/lib/quantum_gates/_simulation/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_simulation
2023-02-02T21:18:02,711 copying build/lib/quantum_gates/circuits.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,713 copying build/lib/quantum_gates/integrators.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,715 copying build/lib/quantum_gates/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,717 copying build/lib/quantum_gates/simulators.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,719 creating build/bdist.linux-armv7l/wheel/quantum_gates/_legacy
2023-02-02T21:18:02,720 copying build/lib/quantum_gates/_legacy/circuit.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy
2023-02-02T21:18:02,723 copying build/lib/quantum_gates/_legacy/simulator.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy
2023-02-02T21:18:02,725 copying build/lib/quantum_gates/_legacy/__init__.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy
2023-02-02T21:18:02,727 copying build/lib/quantum_gates/_legacy/gates.py -> build/bdist.linux-armv7l/wheel/quantum_gates/_legacy
2023-02-02T21:18:02,730 copying build/lib/quantum_gates/utilities.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,732 copying build/lib/quantum_gates/quantum_algorithms.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,734 copying build/lib/quantum_gates/metrics.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,735 copying build/lib/quantum_gates/factories.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,737 copying build/lib/quantum_gates/gates.py -> build/bdist.linux-armv7l/wheel/quantum_gates
2023-02-02T21:18:02,739 running install_egg_info
2023-02-02T21:18:02,744 Copying src/quantum_gates.egg-info to build/bdist.linux-armv7l/wheel/quantum_gates-1.0.1-py3.9.egg-info
2023-02-02T21:18:02,757 running install_scripts
2023-02-02T21:18:02,776 creating build/bdist.linux-armv7l/wheel/quantum_gates-1.0.1.dist-info/WHEEL
2023-02-02T21:18:02,779 creating '/tmp/pip-wheel-vvngwv03/.tmp-2ds75y3k/quantum_gates-1.0.1-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it
2023-02-02T21:18:02,782 adding 'quantum_gates/__init__.py'
2023-02-02T21:18:02,783 adding 'quantum_gates/backends.py'
2023-02-02T21:18:02,784 adding 'quantum_gates/circuits.py'
2023-02-02T21:18:02,786 adding 'quantum_gates/factories.py'
2023-02-02T21:18:02,787 adding 'quantum_gates/gates.py'
2023-02-02T21:18:02,788 adding 'quantum_gates/integrators.py'
2023-02-02T21:18:02,789 adding 'quantum_gates/metrics.py'
2023-02-02T21:18:02,790 adding 'quantum_gates/pulses.py'
2023-02-02T21:18:02,792 adding 'quantum_gates/quantum_algorithms.py'
2023-02-02T21:18:02,793 adding 'quantum_gates/simulators.py'
2023-02-02T21:18:02,794 adding 'quantum_gates/utilities.py'
2023-02-02T21:18:02,796 adding 'quantum_gates/_gates/__init__.py'
2023-02-02T21:18:02,799 adding 'quantum_gates/_gates/factories.py'
2023-02-02T21:18:02,801 adding 'quantum_gates/_gates/gates.py'
2023-02-02T21:18:02,802 adding 'quantum_gates/_gates/integrator.py'
2023-02-02T21:18:02,804 adding 'quantum_gates/_gates/pulse.py'
2023-02-02T21:18:02,806 adding 'quantum_gates/_legacy/__init__.py'
2023-02-02T21:18:02,807 adding 'quantum_gates/_legacy/circuit.py'
2023-02-02T21:18:02,810 adding 'quantum_gates/_legacy/gates.py'
2023-02-02T21:18:02,812 adding 'quantum_gates/_legacy/simulator.py'
2023-02-02T21:18:02,814 adding 'quantum_gates/_simulation/__init__.py'
2023-02-02T21:18:02,817 adding 'quantum_gates/_simulation/backend.py'
2023-02-02T21:18:02,819 adding 'quantum_gates/_simulation/circuit.py'
2023-02-02T21:18:02,821 adding 'quantum_gates/_simulation/simulator.py'
2023-02-02T21:18:02,823 adding 'quantum_gates/_utility/__init__.py'
2023-02-02T21:18:02,825 adding 'quantum_gates/_utility/device_parameters.py'
2023-02-02T21:18:02,826 adding 'quantum_gates/_utility/quantum_algorithms.py'
2023-02-02T21:18:02,828 adding 'quantum_gates/_utility/simulations_utility.py'
2023-02-02T21:18:02,830 adding 'quantum_gates-1.0.1.dist-info/LICENSE'
2023-02-02T21:18:02,832 adding 'quantum_gates-1.0.1.dist-info/METADATA'
2023-02-02T21:18:02,833 adding 'quantum_gates-1.0.1.dist-info/WHEEL'
2023-02-02T21:18:02,834 adding 'quantum_gates-1.0.1.dist-info/top_level.txt'
2023-02-02T21:18:02,835 adding 'quantum_gates-1.0.1.dist-info/RECORD'
2023-02-02T21:18:02,837 removing build/bdist.linux-armv7l/wheel
2023-02-02T21:18:02,947 Building wheel for quantum-gates (pyproject.toml): finished with status 'done'
2023-02-02T21:18:02,953 Created wheel for quantum-gates: filename=quantum_gates-1.0.1-py3-none-any.whl size=45101 sha256=bfd74823d4fd7ab2b687b47667536f63b20fe9ae7ced3292f748c4970afdbe89
2023-02-02T21:18:02,954 Stored in directory: /tmp/pip-ephem-wheel-cache-qhnfcp93/wheels/be/6e/61/afa31e7d4c55cc2ea00d2f6b39e9887b84c1d2788a5c13abde
2023-02-02T21:18:02,968 Successfully built quantum-gates
2023-02-02T21:18:02,973 Removed build tracker: '/tmp/pip-build-tracker-qvljjqze'