Skip to main content

Quantum Art Qiskit Provider for the QaaS platform

Project description

Quantum Art Qiskit Provider

Quantum Art

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.2.tar.gz (14.9 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.2-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file qart_qiskit_provider-2.0.2.tar.gz.

File metadata

  • Download URL: qart_qiskit_provider-2.0.2.tar.gz
  • Upload date:
  • Size: 14.9 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.2.tar.gz
Algorithm Hash digest
SHA256 c153d668cf1a42fe71260487ba813e989295087b3564ec6153ccebabdedddcdb
MD5 81f3031bc74b811144d611f0d9cfadb8
BLAKE2b-256 3b9a739fd19ae1699512f57660bc253ca356a9c6d993e049043b8cf6a48d9a88

See more details on using hashes here.

File details

Details for the file qart_qiskit_provider-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: qart_qiskit_provider-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7926d9d7ab3724fd21b6fff8e5923083ea856cb6c2a543620c65264d4f4b6c0f
MD5 4723d19763c304e0166779631dd43c9a
BLAKE2b-256 5f921592d0106b4aa65d5dc9a8fadd932846f873a7d042376a30916b183daa42

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