iqm-client 31.4.0__tar.gz → 31.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iqm_client-31.4.0 → iqm_client-31.6.0}/CHANGELOG.rst +16 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/PKG-INFO +5 -5
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/user_guide_qiskit.rst +31 -13
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/base.txt +1 -1
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/cirq.txt +1 -1
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/cli.txt +1 -1
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/qiskit.txt +1 -1
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/examples/bell_measure.py +5 -4
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/examples/resonance_example.py +1 -1
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/examples/transpile_example.py +3 -2
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_provider.py +11 -7
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm_client.egg-info/PKG-INFO +5 -5
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm_client.egg-info/requires.txt +4 -4
- iqm_client-31.6.0/version.txt +1 -0
- iqm_client-31.4.0/version.txt +0 -1
- {iqm_client-31.4.0 → iqm_client-31.6.0}/AUTHORS.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/CHANGELOG_cirq-iqm.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/CHANGELOG_cortex-cli.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/CHANGELOG_qiskit-iqm.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/INTEGRATION_GUIDE.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/LICENSE.txt +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/MANIFEST.in +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/README.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docbuild +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/API.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/_static/images/logo.png +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/authors.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/changelog.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/conf.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/index.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/integration_guide.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/license.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/readme.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/user_guide_cirq.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/docs/user_guide_cli.rst +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/pyproject.toml +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/pytest.ini +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/base.in +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/base.in.internal +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/cirq.in +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/cli.in +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/requirements/qiskit.in +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/setup.cfg +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/setup.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/devices/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/devices/adonis.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/devices/aphrodite.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/devices/apollo.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/devices/iqm_device.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/devices/iqm_device_metadata.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/examples/demo_adonis.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/examples/demo_apollo.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/examples/demo_common.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/examples/demo_iqm_execution.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/examples/usage.ipynb +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/extended_qasm_parser.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/iqm_gates.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/iqm_sampler.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/optimizers.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/py.typed +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/serialize.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/cirq_iqm/transpiler.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/api.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/authentication.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/cli/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/cli/auth.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/cli/cli.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/cli/models.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/cli/token_manager.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/errors.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/iqm_client.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/models.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/py.typed +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/transpile.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/util.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/iqm_client/validation.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/examples/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/fake_adonis.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/fake_aphrodite.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/fake_apollo.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/fake_deneb.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/fake_garnet.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_backend.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_circuit.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_circuit_validation.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_job.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_move_layout.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_naive_move_pass.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_target.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/iqm_transpilation.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/move_gate.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/py.typed +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/qiskit_to_iqm.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/transpiler_plugins.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm_client.egg-info/SOURCES.txt +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm_client.egg-info/dependency_links.txt +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm_client.egg-info/entry_points.txt +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm_client.egg-info/top_level.txt +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/test +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/tests/__init__.py +0 -0
- {iqm_client-31.4.0 → iqm_client-31.6.0}/tests/conftest.py +0 -0
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 31.6.0 (2025-10-01)
|
|
6
|
+
===========================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- Clarify the docs on IQM server URLS and facade backends.
|
|
12
|
+
|
|
13
|
+
Version 31.5.0 (2025-09-30)
|
|
14
|
+
===========================
|
|
15
|
+
|
|
16
|
+
Features
|
|
17
|
+
--------
|
|
18
|
+
|
|
19
|
+
- Update dependency on station-control-client
|
|
20
|
+
|
|
5
21
|
Version 31.4.0 (2025-09-19)
|
|
6
22
|
===========================
|
|
7
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-client
|
|
3
|
-
Version: 31.
|
|
3
|
+
Version: 31.6.0
|
|
4
4
|
Summary: Client library for accessing an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Requires-Python: <3.13,>=3.10
|
|
|
216
216
|
Description-Content-Type: text/x-rst
|
|
217
217
|
License-File: LICENSE.txt
|
|
218
218
|
License-File: AUTHORS.rst
|
|
219
|
-
Requires-Dist: iqm-station-control-client<11
|
|
219
|
+
Requires-Dist: iqm-station-control-client<12,>=11
|
|
220
220
|
Requires-Dist: iqm-exa-common<28,>=27
|
|
221
221
|
Requires-Dist: iqm-pulse<13,>=12
|
|
222
222
|
Requires-Dist: numpy<3.0,>=1.26.4
|
|
@@ -224,7 +224,7 @@ Requires-Dist: packaging==24.1
|
|
|
224
224
|
Requires-Dist: pydantic<3.0,>=2.9.2
|
|
225
225
|
Requires-Dist: requests==2.32.3
|
|
226
226
|
Provides-Extra: cirq
|
|
227
|
-
Requires-Dist: iqm-station-control-client<11
|
|
227
|
+
Requires-Dist: iqm-station-control-client<12,>=11; extra == "cirq"
|
|
228
228
|
Requires-Dist: iqm-exa-common<28,>=27; extra == "cirq"
|
|
229
229
|
Requires-Dist: iqm-pulse<13,>=12; extra == "cirq"
|
|
230
230
|
Requires-Dist: cirq-core[contrib]~=1.2; extra == "cirq"
|
|
@@ -232,7 +232,7 @@ Requires-Dist: ply==3.11; extra == "cirq"
|
|
|
232
232
|
Requires-Dist: llvmlite>=0.44.0; extra == "cirq"
|
|
233
233
|
Requires-Dist: numba>=0.61.0; extra == "cirq"
|
|
234
234
|
Provides-Extra: cli
|
|
235
|
-
Requires-Dist: iqm-station-control-client<11
|
|
235
|
+
Requires-Dist: iqm-station-control-client<12,>=11; extra == "cli"
|
|
236
236
|
Requires-Dist: iqm-exa-common<28,>=27; extra == "cli"
|
|
237
237
|
Requires-Dist: iqm-pulse<13,>=12; extra == "cli"
|
|
238
238
|
Requires-Dist: click<9,>=8.1.6; extra == "cli"
|
|
@@ -241,7 +241,7 @@ Requires-Dist: psutil>=5.9.2; extra == "cli"
|
|
|
241
241
|
Requires-Dist: types-psutil; extra == "cli"
|
|
242
242
|
Requires-Dist: python-daemon>=2.3.0; extra == "cli"
|
|
243
243
|
Provides-Extra: qiskit
|
|
244
|
-
Requires-Dist: iqm-station-control-client<11
|
|
244
|
+
Requires-Dist: iqm-station-control-client<12,>=11; extra == "qiskit"
|
|
245
245
|
Requires-Dist: iqm-exa-common<28,>=27; extra == "qiskit"
|
|
246
246
|
Requires-Dist: iqm-pulse<13,>=12; extra == "qiskit"
|
|
247
247
|
Requires-Dist: qiskit<=1.4.2,>=1.0; extra == "qiskit"
|
|
@@ -34,7 +34,9 @@ IQM Resonance
|
|
|
34
34
|
4. Install Qiskit on IQM as instructed below.
|
|
35
35
|
5. Add your API token to the example (either as the parameter ``token`` to the :class:`.IQMProvider`
|
|
36
36
|
constructor, or by setting the environment variable :envvar:`IQM_TOKEN`)
|
|
37
|
-
6. Run the Jupyter notebook (or run
|
|
37
|
+
6. Run the Jupyter notebook (or run
|
|
38
|
+
``python resonance_example.py --url https://cocos.resonance.meetiqm.com/<RESONANCE QC NAME>``
|
|
39
|
+
if you decided to go for the Python script).
|
|
38
40
|
7. If you're connecting to a real quantum computer, the output should show almost half of the
|
|
39
41
|
measurements resulting in '00000' and almost half in '11111' - if this is the case, things are
|
|
40
42
|
set up correctly!
|
|
@@ -51,7 +53,7 @@ On-premises device
|
|
|
51
53
|
3. Install IQM Client CLI and log in as instructed in the
|
|
52
54
|
`documentation <https://docs.meetiqm.com/iqm-client/user_guide_cli.html#installing-iqm-client-cli>`__
|
|
53
55
|
4. Set the environment variable as instructed by IQM Client CLI after logging in.
|
|
54
|
-
5. Run ``$ python bell_measure.py --
|
|
56
|
+
5. Run ``$ python bell_measure.py --url https://<YOUR IQM SERVER>`` - replace the example URL with the correct one.
|
|
55
57
|
6. If you're connecting to a real quantum computer, the output should show almost half of the
|
|
56
58
|
measurements resulting in '00' and almost half in '11' - if this is the case, things are set up
|
|
57
59
|
correctly!
|
|
@@ -153,7 +155,7 @@ circuit(s) are sampled:
|
|
|
153
155
|
from qiskit import transpile
|
|
154
156
|
from iqm.qiskit_iqm import IQMProvider
|
|
155
157
|
|
|
156
|
-
iqm_server_url = "https
|
|
158
|
+
iqm_server_url = "https://<IQM SERVER>" # Replace this with the correct URL
|
|
157
159
|
provider = IQMProvider(iqm_server_url)
|
|
158
160
|
backend = provider.get_backend()
|
|
159
161
|
|
|
@@ -735,11 +737,22 @@ a copy of the IQMFakeBackend instance with an updated error profile:
|
|
|
735
737
|
Running a quantum circuit on a facade backend
|
|
736
738
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
737
739
|
|
|
738
|
-
Circuits can be executed against a mock environment
|
|
739
|
-
Results from such executions are random bits. This may be useful when developing and testing software integrations.
|
|
740
|
+
Circuits can be executed against a *mock environment*: an IQM server that has no real quantum computer hardware.
|
|
741
|
+
Results from such executions are just random bits. This may be useful when developing and testing software integrations.
|
|
740
742
|
|
|
741
|
-
|
|
742
|
-
|
|
743
|
+
.. note::
|
|
744
|
+
|
|
745
|
+
IQM Resonance typically provides a mock environment for each real quantum computer it has.
|
|
746
|
+
For example, the URL
|
|
747
|
+
https://cocos.resonance.meetiqm.com/garnet refers to a real quantum computer named Garnet,
|
|
748
|
+
whereas https://cocos.resonance.meetiqm.com/garnet:mock refers to the corresponding mock environment.
|
|
749
|
+
|
|
750
|
+
On-premises users should ask their admin whether a mock environment is available, and which IQM server
|
|
751
|
+
URL to use.
|
|
752
|
+
|
|
753
|
+
Qiskit on IQM contains :class:`.IQMFacadeBackend`, which allows to combine a mock remote execution with a local
|
|
754
|
+
noisy quantum circuit simulation. This way you can both validate your integration as well as get an idea of
|
|
755
|
+
the expected circuit execution results.
|
|
743
756
|
|
|
744
757
|
To run a circuit this way, use :meth:`IQMProvider.get_backend` with one of the backend names
|
|
745
758
|
``facade_adonis, facade_apollo, facade_aphrodite, facade_deneb`` or ``facade_garnet`` to obtain
|
|
@@ -747,11 +760,16 @@ a facade backend.
|
|
|
747
760
|
``facade_adonis, facade_apollo, facade_aphrodite`` represent typical Crystal 5, Crystal 20 and Crystal 54 architecture QPUs,
|
|
748
761
|
whereas ``facade_deneb`` and ``facade_garnet`` represent the corresponding IQM Resonance quantum computers
|
|
749
762
|
more specifically.
|
|
750
|
-
|
|
751
|
-
Note that the provider must be initialized with the URL of a quantum computer with the corresponding
|
|
763
|
+
The provider must be initialized with the URL of a quantum computer with the corresponding
|
|
752
764
|
static quantum architecture (i.e. names of qubits, their connectivity, and the native gateset should match the desired architecture).
|
|
753
|
-
|
|
754
|
-
|
|
765
|
+
|
|
766
|
+
.. important::
|
|
767
|
+
|
|
768
|
+
When using a facade backend, the IQM server URL of :class:`IQMProvider` should always point to a mock environment
|
|
769
|
+
rather than a real quantum computer, as the execution results from the server will be discarded and replaced by
|
|
770
|
+
a locally simulated result generated by Qiskit Aer. If you use a real quantum computer with a facade backend,
|
|
771
|
+
you will just waste your credits and/or computation time.
|
|
772
|
+
|
|
755
773
|
|
|
756
774
|
.. code-block:: python
|
|
757
775
|
|
|
@@ -763,9 +781,9 @@ from the server will be discarded and replaced by a simulated result generated b
|
|
|
763
781
|
circuit.cx(0, 1)
|
|
764
782
|
circuit.measure_all()
|
|
765
783
|
|
|
766
|
-
iqm_server_url = "https://
|
|
784
|
+
iqm_server_url = "https://cocos.resonance.meetiqm.com/garnet:mock" # Replace this with the correct mock env URL
|
|
767
785
|
provider = IQMProvider(iqm_server_url)
|
|
768
|
-
backend = provider.get_backend('
|
|
786
|
+
backend = provider.get_backend('facade_garnet')
|
|
769
787
|
transpiled_circuit = transpile(circuit, backend=backend)
|
|
770
788
|
job = backend.run(transpiled_circuit, shots=1000)
|
|
771
789
|
print(job.result().get_counts())
|
|
@@ -47,8 +47,9 @@ def bell_measure(server_url: str) -> dict[str, int]:
|
|
|
47
47
|
if __name__ == "__main__":
|
|
48
48
|
argparser = argparse.ArgumentParser()
|
|
49
49
|
argparser.add_argument(
|
|
50
|
-
"--
|
|
51
|
-
help="
|
|
52
|
-
|
|
50
|
+
"--url",
|
|
51
|
+
help="IQM server URL",
|
|
52
|
+
# For example https://cocos.resonance.meetiqm.com/garnet
|
|
53
|
+
default="https://<IQM SERVER>",
|
|
53
54
|
)
|
|
54
|
-
print(bell_measure(argparser.parse_args().
|
|
55
|
+
print(bell_measure(argparser.parse_args().url))
|
|
@@ -68,7 +68,7 @@ if __name__ == "__main__":
|
|
|
68
68
|
"--url",
|
|
69
69
|
help="URL of the IQM Resonance QC",
|
|
70
70
|
# For example https://cocos.resonance.meetiqm.com/garnet
|
|
71
|
-
default="https://cocos.resonance.meetiqm.com/<
|
|
71
|
+
default="https://cocos.resonance.meetiqm.com/<RESONANCE QC NAME>",
|
|
72
72
|
)
|
|
73
73
|
argparser.add_argument(
|
|
74
74
|
"--token",
|
|
@@ -51,8 +51,9 @@ if __name__ == "__main__":
|
|
|
51
51
|
argparser = argparse.ArgumentParser()
|
|
52
52
|
argparser.add_argument(
|
|
53
53
|
"--url",
|
|
54
|
-
help="
|
|
55
|
-
|
|
54
|
+
help="IQM server URL",
|
|
55
|
+
# For example https://cocos.resonance.meetiqm.com/garnet
|
|
56
|
+
default="https://<IQM SERVER>",
|
|
56
57
|
)
|
|
57
58
|
circuit_transpiled, results = transpile_example(argparser.parse_args().url)
|
|
58
59
|
print(circuit_transpiled)
|
|
@@ -289,16 +289,20 @@ facade_names: dict[str, IQMFakeBackend] = {
|
|
|
289
289
|
|
|
290
290
|
|
|
291
291
|
class IQMFacadeBackend(IQMBackend):
|
|
292
|
-
"""Simulates the execution of quantum circuits on a mock IQM quantum computer.
|
|
292
|
+
"""Simulates locally the execution of quantum circuits on a remote mock IQM quantum computer.
|
|
293
293
|
|
|
294
|
-
|
|
295
|
-
and if the mock execution is successful,
|
|
296
|
-
is broadly representative of the mocked QPU. Finally returns the *simulated results*.
|
|
294
|
+
This backend is meant to be used to run circuits on a mock IQM server that has no real quantum hardware,
|
|
295
|
+
and if the mock execution is successful, simulate the circuits locally using an error model that
|
|
296
|
+
is broadly representative of the mocked QPU. Finally it returns the *simulated results*.
|
|
297
297
|
|
|
298
|
-
|
|
298
|
+
If you just want to run a local simulation, use :class:`.IQMFakeBackend` directly.
|
|
299
299
|
|
|
300
|
-
|
|
301
|
-
|
|
300
|
+
.. important::
|
|
301
|
+
|
|
302
|
+
When using a facade backend, the IQM server URL of :class:`IQMProvider` should always point to a mock environment
|
|
303
|
+
rather than a real quantum computer, as the execution results from the server will be discarded and replaced by
|
|
304
|
+
a locally simulated result generated by Qiskit Aer. If you use a real quantum computer with a facade backend,
|
|
305
|
+
you will just waste your credits and/or computation time.
|
|
302
306
|
|
|
303
307
|
Args:
|
|
304
308
|
client: Client instance for communicating with an IQM server.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-client
|
|
3
|
-
Version: 31.
|
|
3
|
+
Version: 31.6.0
|
|
4
4
|
Summary: Client library for accessing an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Requires-Python: <3.13,>=3.10
|
|
|
216
216
|
Description-Content-Type: text/x-rst
|
|
217
217
|
License-File: LICENSE.txt
|
|
218
218
|
License-File: AUTHORS.rst
|
|
219
|
-
Requires-Dist: iqm-station-control-client<11
|
|
219
|
+
Requires-Dist: iqm-station-control-client<12,>=11
|
|
220
220
|
Requires-Dist: iqm-exa-common<28,>=27
|
|
221
221
|
Requires-Dist: iqm-pulse<13,>=12
|
|
222
222
|
Requires-Dist: numpy<3.0,>=1.26.4
|
|
@@ -224,7 +224,7 @@ Requires-Dist: packaging==24.1
|
|
|
224
224
|
Requires-Dist: pydantic<3.0,>=2.9.2
|
|
225
225
|
Requires-Dist: requests==2.32.3
|
|
226
226
|
Provides-Extra: cirq
|
|
227
|
-
Requires-Dist: iqm-station-control-client<11
|
|
227
|
+
Requires-Dist: iqm-station-control-client<12,>=11; extra == "cirq"
|
|
228
228
|
Requires-Dist: iqm-exa-common<28,>=27; extra == "cirq"
|
|
229
229
|
Requires-Dist: iqm-pulse<13,>=12; extra == "cirq"
|
|
230
230
|
Requires-Dist: cirq-core[contrib]~=1.2; extra == "cirq"
|
|
@@ -232,7 +232,7 @@ Requires-Dist: ply==3.11; extra == "cirq"
|
|
|
232
232
|
Requires-Dist: llvmlite>=0.44.0; extra == "cirq"
|
|
233
233
|
Requires-Dist: numba>=0.61.0; extra == "cirq"
|
|
234
234
|
Provides-Extra: cli
|
|
235
|
-
Requires-Dist: iqm-station-control-client<11
|
|
235
|
+
Requires-Dist: iqm-station-control-client<12,>=11; extra == "cli"
|
|
236
236
|
Requires-Dist: iqm-exa-common<28,>=27; extra == "cli"
|
|
237
237
|
Requires-Dist: iqm-pulse<13,>=12; extra == "cli"
|
|
238
238
|
Requires-Dist: click<9,>=8.1.6; extra == "cli"
|
|
@@ -241,7 +241,7 @@ Requires-Dist: psutil>=5.9.2; extra == "cli"
|
|
|
241
241
|
Requires-Dist: types-psutil; extra == "cli"
|
|
242
242
|
Requires-Dist: python-daemon>=2.3.0; extra == "cli"
|
|
243
243
|
Provides-Extra: qiskit
|
|
244
|
-
Requires-Dist: iqm-station-control-client<11
|
|
244
|
+
Requires-Dist: iqm-station-control-client<12,>=11; extra == "qiskit"
|
|
245
245
|
Requires-Dist: iqm-exa-common<28,>=27; extra == "qiskit"
|
|
246
246
|
Requires-Dist: iqm-pulse<13,>=12; extra == "qiskit"
|
|
247
247
|
Requires-Dist: qiskit<=1.4.2,>=1.0; extra == "qiskit"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
iqm-station-control-client<11
|
|
1
|
+
iqm-station-control-client<12,>=11
|
|
2
2
|
iqm-exa-common<28,>=27
|
|
3
3
|
iqm-pulse<13,>=12
|
|
4
4
|
numpy<3.0,>=1.26.4
|
|
@@ -7,7 +7,7 @@ pydantic<3.0,>=2.9.2
|
|
|
7
7
|
requests==2.32.3
|
|
8
8
|
|
|
9
9
|
[cirq]
|
|
10
|
-
iqm-station-control-client<11
|
|
10
|
+
iqm-station-control-client<12,>=11
|
|
11
11
|
iqm-exa-common<28,>=27
|
|
12
12
|
iqm-pulse<13,>=12
|
|
13
13
|
cirq-core[contrib]~=1.2
|
|
@@ -16,7 +16,7 @@ llvmlite>=0.44.0
|
|
|
16
16
|
numba>=0.61.0
|
|
17
17
|
|
|
18
18
|
[cli]
|
|
19
|
-
iqm-station-control-client<11
|
|
19
|
+
iqm-station-control-client<12,>=11
|
|
20
20
|
iqm-exa-common<28,>=27
|
|
21
21
|
iqm-pulse<13,>=12
|
|
22
22
|
click<9,>=8.1.6
|
|
@@ -26,7 +26,7 @@ types-psutil
|
|
|
26
26
|
python-daemon>=2.3.0
|
|
27
27
|
|
|
28
28
|
[qiskit]
|
|
29
|
-
iqm-station-control-client<11
|
|
29
|
+
iqm-station-control-client<12,>=11
|
|
30
30
|
iqm-exa-common<28,>=27
|
|
31
31
|
iqm-pulse<13,>=12
|
|
32
32
|
qiskit<=1.4.2,>=1.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
31.6.0
|
iqm_client-31.4.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
31.4.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iqm_client-31.4.0 → iqm_client-31.6.0}/src/iqm/qiskit_iqm/fake_backends/iqm_fake_backend.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|