Skip to main content
Documentation

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

Alternatively, you can install the latest (development) version using:

pip install git+https://github.com/It4innovations/quantum-as-a-service.git@main

Example usage:

from py4lexis.session import LexisSession
from qaas import QProvider
from qiskit import QuantumCircuit

token    = LexisSession().get_access_token()
backend  = QProvider(token, "my_project").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(lexis_access_token, "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()

Authors

License

Apache 2.0 — see LICENSE.

Metadata

Release files for qaas 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qaas 0.4.0
File Size Uploaded
qaas-0.4.0.tar.gz 61.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qaas 0.4.0
File Interpreter ABI Platform
qaas-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 129.0 kB

Release files / qaas-0.4.0.tar.gz

Download URL qaas-0.4.0.tar.gz
Size 61.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bc540eb77d8b9a6c194f8a34b393b7f1e84a8066813fcb7e75be44f151660a9c
BLAKE2b-256 checksum
How to use checksums
792c18091dfccec50d5160a59f5bc8ea447e8ddd8b9bb9bd98d95c91f7556f8d
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 11, 2026.

Transparency log

Release files / qaas-0.4.0-py3-none-any.whl

Download URL qaas-0.4.0-py3-none-any.whl
Size 67.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f5ec1f8bd2c8fcc3d9ec79477b76b4ceb0cf8d07f277c10dd86cc401fb8872f
BLAKE2b-256 checksum
How to use checksums
9eb80c5f0b3866ccb223e1aa9c097c31a55821c23608aeb58f9d019b1fe27317
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 11, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

This release

0.4.0 This release

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page