iqm-pulla 9.1.0__tar.gz → 9.3.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_pulla-9.1.0 → iqm_pulla-9.3.0}/CHANGELOG.rst +16 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/PKG-INFO +2 -2
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/qiskit.txt +2 -2
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/utils_qir.py +2 -2
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/utils_qiskit.py +6 -2
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm_pulla.egg-info/PKG-INFO +2 -2
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm_pulla.egg-info/SOURCES.txt +0 -1
- iqm_pulla-9.3.0/version.txt +1 -0
- iqm_pulla-9.1.0/src/iqm/cpc/compiler/circuit_compilation_request_handler.py +0 -100
- iqm_pulla-9.1.0/version.txt +0 -1
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/AUTHORS.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/LICENSE.txt +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/MANIFEST.in +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/README.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/API.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Compilation Stages.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Configuration and Usage.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Custom Gates and Implementations.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Example - Compilation With Local Calibration Set.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Example - Executing QIR programs.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Example - Measuring T1.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Example - Randomized Benchmarking.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Example - Simple Dynamical Decoupling.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Quick Start.ipynb +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/_static/images/favicon.ico +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/_static/images/logo.png +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/_templates/autosummary-class-template.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/_templates/autosummary-module-template.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/authors.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/changelog.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/common_errors.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/conf.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/examples.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/index.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/license.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/migration_guide.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/readme.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/references.bib +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/references.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/user_guides.rst +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/pyproject.toml +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/base.in +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/base.txt +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/notebook.in +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/notebook.txt +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/qir.in +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/qir.txt +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/requirements/qiskit.in +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/setup.cfg +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/setup.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/__init__.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/compiler/__init__.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/compiler/compiler.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/compiler/dd.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/compiler/errors.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/compiler/standard_stages.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/compiler/station_settings.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/interface/__init__.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/interface/compiler.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/cpc/py.typed +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/__init__.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/calibration.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/interface.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/pulla.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/py.typed +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/quantum_architecture.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/utils.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/utils_cirq.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm/pulla/utils_dd.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm_pulla.egg-info/dependency_links.txt +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm_pulla.egg-info/requires.txt +1 -1
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/src/iqm_pulla.egg-info/top_level.txt +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/tests/.pylintrc +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/tests/__init__.py +0 -0
- {iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/tests/conftest.py +0 -0
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
Changelog
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
|
+
Version 9.3.0 (2025-08-05)
|
|
6
|
+
==========================
|
|
7
|
+
|
|
8
|
+
Features
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
- Require compiler instead of Pulla in qir_to_pulla
|
|
12
|
+
|
|
13
|
+
Version 9.2.0 (2025-07-31)
|
|
14
|
+
==========================
|
|
15
|
+
|
|
16
|
+
Features
|
|
17
|
+
--------
|
|
18
|
+
|
|
19
|
+
- Support iqm-client with QIR support
|
|
20
|
+
|
|
5
21
|
Version 9.1.0 (2025-07-30)
|
|
6
22
|
==========================
|
|
7
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-pulla
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.3.0
|
|
4
4
|
Summary: Client library for pulse-level access to an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -239,8 +239,8 @@ Provides-Extra: qiskit
|
|
|
239
239
|
Requires-Dist: iqm-exa-common<27,>=26; extra == "qiskit"
|
|
240
240
|
Requires-Dist: iqm-station-control-client<10,>=9; extra == "qiskit"
|
|
241
241
|
Requires-Dist: iqm-pulse<11,>=10; extra == "qiskit"
|
|
242
|
-
Requires-Dist: iqm-client<30,>=29; extra == "qiskit"
|
|
243
242
|
Requires-Dist: iqm-client[qiskit]<30,>=29; extra == "qiskit"
|
|
243
|
+
Requires-Dist: iqm-client<30,>=29; extra == "qiskit"
|
|
244
244
|
|
|
245
245
|
IQM Pulla
|
|
246
246
|
#########
|
|
@@ -263,8 +263,8 @@ def generate_qiskit_qir_qubit_mapping(qiskit_circuit: QuantumCircuit, qiskit_bac
|
|
|
263
263
|
Then we assign qiskit-qir index to the qiskit logic qubit idx.
|
|
264
264
|
|
|
265
265
|
Args:
|
|
266
|
-
qiskit_circuit: Qiskit circuit to generate the mapping for.
|
|
267
|
-
qiskit_backend: Qiskit backend object to be used for qubit name generation.
|
|
266
|
+
qiskit_circuit: The Qiskit circuit to generate the mapping for.
|
|
267
|
+
qiskit_backend: The Qiskit backend object to be used for qubit name generation.
|
|
268
268
|
|
|
269
269
|
Returns:
|
|
270
270
|
A dictionary mapping Qiskit qubit indices to QIR qubit pointers.
|
|
@@ -19,6 +19,7 @@ from collections import Counter
|
|
|
19
19
|
from collections.abc import Collection, Sequence
|
|
20
20
|
from typing import TYPE_CHECKING
|
|
21
21
|
|
|
22
|
+
from iqm.iqm_client import Circuit
|
|
22
23
|
from iqm.qiskit_iqm.iqm_backend import IQMBackendBase
|
|
23
24
|
from iqm.qiskit_iqm.iqm_job import IQMJob
|
|
24
25
|
from iqm.qiskit_iqm.qiskit_to_iqm import serialize_instructions
|
|
@@ -32,7 +33,7 @@ from iqm.pulla.interface import StationControlResult, TaskStatus
|
|
|
32
33
|
from iqm.pulse.builder import CircuitOperation
|
|
33
34
|
|
|
34
35
|
if TYPE_CHECKING:
|
|
35
|
-
from iqm.iqm_client import
|
|
36
|
+
from iqm.iqm_client import Instruction
|
|
36
37
|
from iqm.qiskit_iqm.iqm_backend import DynamicQuantumArchitecture
|
|
37
38
|
from iqm.qiskit_iqm.iqm_provider import IQMBackend
|
|
38
39
|
|
|
@@ -137,7 +138,10 @@ def qiskit_to_pulla(
|
|
|
137
138
|
else {m.logical_name: m.physical_name for m in run_request.qubit_mapping}
|
|
138
139
|
)
|
|
139
140
|
|
|
140
|
-
|
|
141
|
+
# We can be certain run_request contains only Circuit objects, because we created it
|
|
142
|
+
# right in this method with qiskit.QuantumCircuit objects
|
|
143
|
+
run_request_iqm_circuits: list[Circuit] = [c for c in run_request.circuits if isinstance(c, (Circuit))]
|
|
144
|
+
circuits = [_circuit_to_dataclass(c) for c in run_request_iqm_circuits]
|
|
141
145
|
return circuits, compiler
|
|
142
146
|
|
|
143
147
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iqm-pulla
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.3.0
|
|
4
4
|
Summary: Client library for pulse-level access to an IQM quantum computer
|
|
5
5
|
Author-email: IQM Finland Oy <developers@meetiqm.com>
|
|
6
6
|
License: Apache License
|
|
@@ -239,8 +239,8 @@ Provides-Extra: qiskit
|
|
|
239
239
|
Requires-Dist: iqm-exa-common<27,>=26; extra == "qiskit"
|
|
240
240
|
Requires-Dist: iqm-station-control-client<10,>=9; extra == "qiskit"
|
|
241
241
|
Requires-Dist: iqm-pulse<11,>=10; extra == "qiskit"
|
|
242
|
-
Requires-Dist: iqm-client<30,>=29; extra == "qiskit"
|
|
243
242
|
Requires-Dist: iqm-client[qiskit]<30,>=29; extra == "qiskit"
|
|
243
|
+
Requires-Dist: iqm-client<30,>=29; extra == "qiskit"
|
|
244
244
|
|
|
245
245
|
IQM Pulla
|
|
246
246
|
#########
|
|
@@ -43,7 +43,6 @@ requirements/qiskit.txt
|
|
|
43
43
|
src/iqm/cpc/__init__.py
|
|
44
44
|
src/iqm/cpc/py.typed
|
|
45
45
|
src/iqm/cpc/compiler/__init__.py
|
|
46
|
-
src/iqm/cpc/compiler/circuit_compilation_request_handler.py
|
|
47
46
|
src/iqm/cpc/compiler/compiler.py
|
|
48
47
|
src/iqm/cpc/compiler/dd.py
|
|
49
48
|
src/iqm/cpc/compiler/errors.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9.3.0
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
# Copyright 2024-2025 IQM
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
"""Convert quantum circuits into instruction schedules.
|
|
15
|
-
|
|
16
|
-
This is the entry-point for integrations, e.g. for a server-side component performing circuit-to-pulse compilation.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
import logging
|
|
20
|
-
from typing import Any
|
|
21
|
-
|
|
22
|
-
from opentelemetry import context as telemetry_context
|
|
23
|
-
from opentelemetry import propagate
|
|
24
|
-
|
|
25
|
-
from exa.common.data.setting_node import SettingNode
|
|
26
|
-
from exa.common.qcm_data.chip_topology import ChipTopology
|
|
27
|
-
from iqm.cpc.compiler.compiler import Compiler, cpc_logger, tracer
|
|
28
|
-
from iqm.cpc.compiler.standard_stages import get_standard_stages
|
|
29
|
-
from iqm.cpc.interface.compiler import CircuitBatch, CircuitCompilationResult, CircuitExecutionOptions
|
|
30
|
-
from iqm.pulla.interface import CalibrationSet
|
|
31
|
-
from iqm.pulse.playlist.channel import ChannelProperties
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def handle_circuit_compilation_request( # noqa: PLR0913
|
|
35
|
-
job_id: str,
|
|
36
|
-
circuits: CircuitBatch,
|
|
37
|
-
shots: int,
|
|
38
|
-
calibration_set: CalibrationSet,
|
|
39
|
-
chip_topology: ChipTopology,
|
|
40
|
-
channel_properties: dict[str, ChannelProperties],
|
|
41
|
-
component_channels: dict[str, dict[str, str]],
|
|
42
|
-
options: CircuitExecutionOptions,
|
|
43
|
-
custom_settings: SettingNode | None,
|
|
44
|
-
qubit_mapping: dict[str, str] | None,
|
|
45
|
-
trace_context: dict[str, Any] | None,
|
|
46
|
-
) -> CircuitCompilationResult:
|
|
47
|
-
"""Compile a batch of quantum circuits into a form that can be executed by Station Control.
|
|
48
|
-
|
|
49
|
-
Args:
|
|
50
|
-
job_id: ID of the job requesting compilation, used in logging
|
|
51
|
-
circuits: quantum circuits to compile into schedules
|
|
52
|
-
shots: number of times to repeat the execution of each circuit
|
|
53
|
-
calibration_set: calibration data for the station the circuits are executed on
|
|
54
|
-
chip_topology: topology of the QPU the circuits are executed on
|
|
55
|
-
channel_properties: properties of control channels on the station
|
|
56
|
-
component_channels: QPU component to function to channel mapping
|
|
57
|
-
options: various discrete options for circuit execution that affect compilation
|
|
58
|
-
custom_settings: additional Station Control settings to override generated settings
|
|
59
|
-
qubit_mapping: Mapping of logical qubit names to physical qubit names. ``None`` means the identity mapping.
|
|
60
|
-
trace_context: telemetry context to be propagated during circuit compilation
|
|
61
|
-
|
|
62
|
-
Returns:
|
|
63
|
-
circuit compilation result
|
|
64
|
-
|
|
65
|
-
"""
|
|
66
|
-
if trace_context:
|
|
67
|
-
telemetry_context.attach(propagate.extract(trace_context))
|
|
68
|
-
cpc_logger.debug("Compiling circuits for job %s", job_id)
|
|
69
|
-
|
|
70
|
-
with tracer.start_as_current_span("prepare_compilation"):
|
|
71
|
-
if cpc_logger.isEnabledFor(logging.DEBUG):
|
|
72
|
-
cpc_logger.debug(
|
|
73
|
-
"calibration set contents:\n%s",
|
|
74
|
-
"".join(f" {k:60s}: {v}\n" for k, v in calibration_set.items()),
|
|
75
|
-
)
|
|
76
|
-
compiler = Compiler(
|
|
77
|
-
calibration_set=calibration_set,
|
|
78
|
-
chip_topology=chip_topology,
|
|
79
|
-
channel_properties=channel_properties,
|
|
80
|
-
component_channels=component_channels,
|
|
81
|
-
component_mapping=qubit_mapping,
|
|
82
|
-
options=options,
|
|
83
|
-
stages=get_standard_stages(idempotent=False),
|
|
84
|
-
strict=True,
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
with tracer.start_as_current_span("compile_circuits", attributes={"len(circuits)": len(circuits)}):
|
|
88
|
-
playlist, compilation_context = compiler.compile(circuits)
|
|
89
|
-
|
|
90
|
-
with tracer.start_as_current_span("build_settings"):
|
|
91
|
-
compilation_context["custom_settings"] = custom_settings
|
|
92
|
-
settings, compilation_context = compiler.build_settings(compilation_context, shots)
|
|
93
|
-
|
|
94
|
-
with tracer.start_as_current_span("prepare_compilation_results"):
|
|
95
|
-
return CircuitCompilationResult(
|
|
96
|
-
playlist=playlist,
|
|
97
|
-
readout_mappings=compilation_context["readout_mappings"],
|
|
98
|
-
settings=settings,
|
|
99
|
-
circuit_metrics=compilation_context["circuit_metrics"],
|
|
100
|
-
)
|
iqm_pulla-9.1.0/version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9.1.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
|
{iqm_pulla-9.1.0 → iqm_pulla-9.3.0}/docs/Example - Compilation With Local Calibration Set.ipynb
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
|
|
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
|