Access IQM quantum hardware through the LEXIS Platform via HEAppE.
Documentation: https://it4innovations.github.io/quantum-as-a-service/
Requirements
Python 3.12
required Python packages: see dependencies in pyproject.toml
Quick start
QaaS is available on PyPI, so you can install it easily using pip.
pip install qaas --extra-index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple
Alternatively, you can install the latest (development) version using:
pip install git+https://github.com/It4innovations/quantum-as-a-service.git@main --extra-index-url https://opencode.it4i.eu/api/v4/projects/107/packages/pypi/simple
Example usage:
from qaas import QProvider
from qiskit import QuantumCircuit
backend = QProvider("my_project").get_backend("EQE1-CZ-P0001")
# Argument 'token' is optional
# from py4lexis.session import LexisSession
# token = LexisSession().get_access_token()
# backend = QProvider("my_project", token=lexis_access_token).get_backend("EQE1-CZ-P0001")
qc = QuantumCircuit(2, 2)
qc.h(0); qc.cx(0, 1); qc.measure_all()
counts = backend.run(backend.transpile(qc), shots=1000).result().get_counts()
print(counts)
Also OpenQASM is supported on input:
from qaas import export_qasm3_with_custom_move as qasm3dumps
qc = QuantumCircuit(2, 2)
qc.h(0); qc.cx(0, 1); qc.measure_all()
qasm_transpiled_qc:str = qasm3dumps(backend.transpile(qc))
counts = backend.run([qasm_transpiled_qc], shots=1000).result().get_counts()
print(counts)
IQM Pulla
from qiskit import QuantumCircuit, visualization
from qiskit.compiler import transpile
from iqm.qiskit_iqm.iqm_transpilation import optimize_single_qubit_gates
from iqm.pulla.utils_qiskit import sweep_job_to_qiskit
from qaas.client import QProvider, QBackend
from qaas.client.qpulla import qiskit_to_pulla, QPullaBackendIQM
SHOTS = 100
provider = QProvider("my_project")
client = provider.get_client(lexis_resource_name)
dqa = client.get_dynamic_architecture()
compiler = p.get_standard_compiler()
# Create Pulla instance
p = provider.get_pulla(lexis_resource_name)
pulla_backend: QPullaBackendIQM = QPullaBackendIQM(dqa,p,compiler)
qc_transpiled = backend.transpile(
qc,
layout_method='sabre',
optimization_level=0
)
# Optimize single-qubit gates
qc_optimized = optimize_single_qubit_gates(qc_transpiled)
circuits, compiler = qiskit_to_pulla(p, pulla_backend, [qc_optimized])
# Build settings for execution
settings = compiler.get_settings(circuits[0])
settings.set_shots(SHOTS) # optional
# Compile to playlist
run_definition, context = compiler.compile(circuits, settings=settings)
# Submit playlist returns SweepJob
job = p.submit_playlist(run_definition, context=context)
job.wait_for_completion()
# Get raw results
raw_results = job.result()
# Convert to Qiskit result format
qiskit_result = sweep_job_to_qiskit(
job,
shots=SHOTS
)
# Qiskit Counts
counts = qiskit_result.get_counts()
License
Apache 2.0 — see LICENSE.
Metadata
Release files for qaas 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qaas-0.5.0.tar.gz | 62.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qaas-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 131.4 kB
Release files / qaas-0.5.0.tar.gz
| Download URL | qaas-0.5.0.tar.gz |
|---|---|
| Size | 62.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c11544e91c59cdfb9ddc7b5c3ccb15c8899c39d889bb964255361b068c6861c
|
|
BLAKE2b-256 checksum How to use checksums |
632ea7517b82002bba694d391836f43dce9dc2476ec89d8faa4f1272e9c3a270
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency logRelease files / qaas-0.5.0-py3-none-any.whl
| Download URL | qaas-0.5.0-py3-none-any.whl |
|---|---|
| Size | 68.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e4424bf81efe7138dae1afc549269bef18499ad880847c76eacb9d9afdf77b32
|
|
BLAKE2b-256 checksum How to use checksums |
5c74600990e0279594117ec19c52e6db7bcf5904eb2bf6f9d38ac166db042a6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency log