Quantum Art Qiskit Provider for the QaaS platform
Project description
Quantum Art Qiskit Provider
Run Qiskit circuits on Quantum Art backends through the Quantum Art QaaS platform.
This package provides a Qiskit BackendV2 provider for submitting quantum
circuits, listing available Quantum Art backends, polling jobs, retrieving
Qiskit Result objects, and cancelling jobs.
Requirements
- Python 3.12 or newer
- Qiskit 2.2.3 or newer
- A Quantum Art QaaS API token
Installation
pip install qart-qiskit-provider
Quick Start
Open the Quantum Art dashboard at https://qaas.quantum-art.tech and create an API token.
Set the token once in your shell:
export QART_API_KEY=your-token
On Windows PowerShell:
$env:QART_API_KEY = "your-token"
You can also pass the token directly when creating the provider:
from qart.qiskit_provider import QartProvider
provider = QartProvider(access_token="your-token")
from qiskit import QuantumCircuit
from qart.qiskit_provider import QartProvider
provider = QartProvider()
backend = provider.get_backend("Montage-E")
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])
job = backend.run(circuit, shots=100)
result = job.result()
print(job.job_id())
print(result.get_counts())
Backends
List the backends available to your account:
print([backend.name for backend in provider.backends()])
Select a backend by name:
backend = provider.get_backend("Montage-E")
Job Options
backend.run() follows the Qiskit BackendV2 form:
job = backend.run(circuit, **options)
Supported options:
| Option | Type | Default | Description |
|---|---|---|---|
shots |
int |
100 |
Number of executions |
query_timeout |
number or None |
None |
Maximum seconds to wait for a result |
label |
str |
Label your circuit | |
ideal_simulation |
bool |
server default: False |
Optionally run with no noise |
compile |
bool |
server default: True |
Optionally enable or disable compiler |
parameters |
dict |
{} |
Backend execution options |
metadata |
dict[str, str] |
{} |
Job labels or other annotations |
When query_timeout is None, job.result() waits until the job finishes.
parameters is reserved for future or backend-specific execution options.
Examples:
job = backend.run(
circuit,
shots=100,
label="my-amazing-circuit",
)
Run with explicit backend execution options:
job = backend.run(
circuit,
shots=100,
label="my-amazing-circuit",
ideal_simulation=True,
compile=False,
)
parameters must be JSON-serializable. metadata keys and values must be strings.
If a top-level alias name is also present inside parameters or metadata, the
SDK raises an error instead of choosing one value.
Jobs
job = backend.run(circuit, shots=100)
print(job.job_id())
print(job.status())
result = job.result(timeout=120)
print(result.get_counts())
job.cancel()
You can also manage a job by ID:
job_id = job.job_id()
status = backend.status(job_id)
result = backend.result(job_id, query_timeout=120)
backend.cancel(job_id)
Logging
The SDK is quiet by default. To enable diagnostic logs:
import logging
from qart.qiskit_provider import configure_diagnostic_logging
configure_diagnostic_logging(logging.DEBUG)
Documentation
- Website: https://www.quantum-art.tech/
- Docs: https://qaas.quantum-art.tech/documentation
- QaaS dashboard: https://qaas.quantum-art.tech/
Troubleshooting
Authentication error: Check that QART_API_KEY is set correctly, or pass
access_token directly to QartProvider.
Backend not found: Use provider.backends() to list the backend names
available to your account.
Circuit too large: Reduce the number of qubits or reduce the number of shots.
Timeout: Increase query_timeout or check the job status later with
backend.status(job_id).
License
This project is licensed under the Apache License, Version 2.0. See
LICENSE.
Quantum Art and the Quantum Art logo are trademarks or registered trademarks of Quantum Art Ltd. The Apache License 2.0 does not grant trademark rights.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qart_qiskit_provider-2.0.3.tar.gz.
File metadata
- Download URL: qart_qiskit_provider-2.0.3.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c90520a084076054e62f0b27bd0df982b2c438cb13dd84d0e0d39b6ad00e8682
|
|
| MD5 |
3f08dbc9406ad25f042def27bf0149a4
|
|
| BLAKE2b-256 |
6cebf3bc743d018a20b69e9896b2ebeb78390794c18bc46d51ca4624b5384b29
|
File details
Details for the file qart_qiskit_provider-2.0.3-py3-none-any.whl.
File metadata
- Download URL: qart_qiskit_provider-2.0.3-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebe6cebca4dc53ed56a6b1ffb79e39ae7e19cbc928bce5ca9ff50ce6c175e3af
|
|
| MD5 |
dd19eb5c027605828d93d07975539507
|
|
| BLAKE2b-256 |
d8b545e54589c90cd3619716319d499ec7ab7501e4cd79f338cbdaeba4db8eeb
|