Skip to main content

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

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

qart_qiskit_provider-2.0.3.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qart_qiskit_provider-2.0.3-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

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

Hashes for qart_qiskit_provider-2.0.3.tar.gz
Algorithm Hash digest
SHA256 c90520a084076054e62f0b27bd0df982b2c438cb13dd84d0e0d39b6ad00e8682
MD5 3f08dbc9406ad25f042def27bf0149a4
BLAKE2b-256 6cebf3bc743d018a20b69e9896b2ebeb78390794c18bc46d51ca4624b5384b29

See more details on using hashes here.

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

Hashes for qart_qiskit_provider-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ebe6cebca4dc53ed56a6b1ffb79e39ae7e19cbc928bce5ca9ff50ce6c175e3af
MD5 dd19eb5c027605828d93d07975539507
BLAKE2b-256 d8b545e54589c90cd3619716319d499ec7ab7501e4cd79f338cbdaeba4db8eeb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page