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 --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()

Authors

License

Apache 2.0 — see LICENSE.

Metadata

Release files for qaas 0.5.1

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.5.1
File Size Uploaded
qaas-0.5.1.tar.gz 64.8 kB Details

Built distribution (wheel)

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

Total release size: 135.3 kB

Release files / qaas-0.5.1.tar.gz

Download URL qaas-0.5.1.tar.gz
Size 64.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4c61697bc2a92c03b8c51d8097fc50bd94d6d5e46fa51ad3a3d92bd99cb27139
BLAKE2b-256 checksum
How to use checksums
33661f9cbfaab4e665182b0ae3b23a8c85be377e06183563c87422c00e568f28
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 Sep 3, 2026.

Transparency log

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

Download URL qaas-0.5.1-py3-none-any.whl
Size 70.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b692d619e20c5a27b2c16363c5e5fff5cf3dbdcb564b24036014ba722c9a867
BLAKE2b-256 checksum
How to use checksums
7e21d45463998ff8c463013d7da08aaee474188d57103d123f99ed9106c192b1
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 Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.2

2 release files

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

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