Qiskit 2.x Connector for IBM Quantum Backends in Realtime RuntimeService
Project description
qiskit-connector
⚛️Qiskit 2.x Connector for IBM Quantum Backends in Realtime
A Quantum helper package compatible with Qiskit v2.x which streamlines authentication, plan detection, and backend selection for Qiskit RuntimeService. This package performs the following:
- Loads environment variables from config file (e.g.
.env) viapython-dotenvto configure your IBM Quantum account and make thebackendobject available in your quantum code for reuse in real-time. - Detects your active plan (Open, Standard, Premium, Dedicated) and sets up the correct channel/instance.
- Provides functions to save your account (
qiskit_save_connection), verify QPU resources (qpu_verify,is_verified), and retrieve a ready-to-use backend (connector()).
🐍 Package built and maintained by Dr. Jeffrey Chijioke-Uche, IBM Quantum Ambassador & Research Scientist.
🐍 Package is globally available in Pypi: https://pypi.org/project/qiskit-connector
📋 Features & API
All of the following functions are available after you import the module:
from qiskit_connector import (
connector,
plan_type,
qpu_verify,
is_verified
)
-
qiskit_save_connection(plan_type: str)
Saves your IBM Quantum account into QiskitRuntimeService using the environment variables for the given plan ("open","standard","premium", or"dedicated"). -
qpu_verify()
Lists available QPUs for your plan by queryingQiskitRuntimeService.backends()or falling back topaid_plans()for paid plans. -
is_verified()
Verifies real‐time least-busy QPU for the active plan and prints details (name, qubit count, online date). -
connector() -> IBMBackend
Main entry point: Loads your saved account, picks the least busy QPU (or first available for open or paid plans), prints diagnostics, and returns anIBMBackendinstance ready for circuit execution. -
plan_type() -> str
Returns either "Open Plan" or "Paid Plan" depending on your.envtoggles.
🔧 Installation
pip install qiskit-connector
This will also pull in:
qiskit>=2.0.0qiskit-ibm-runtime>=0.37.0python-dotenvrequests
and any other Qiskit dependencies.
🗂️ Environment (.env) Setup
⚠️ Security Practice: Do not CHECK-IN .env into version control. Add it to your .gitignore.
During development, create a file named .env at your project root. The connector will automatically load it:
#------------------------------------------------------------------------------------------------
# This file is used to store environment variables for the Qiskit installation wizard: Update it.
# The "ibm_quantum" channel option is deprecated and will be sunset on 1 July 2025.
# After this date, ibm_cloud will be the only valid channel.
# For information on migrating to the new IBM Quantum Platform on the "ibm_cloud" channel,
# review the migration guide https://quantum.cloud.ibm.com/docs/migration-guides/classic-iqp-to-cloud-iqp .
#-----------------------------------------------------------------------------------------------------
# GENERAL PURPOSE USE:
#--------------------------------------------
IQP_API_TOKEN="<YOUR_API_TOKEN_OR_IBM_QUANTUM_API_KEY>"
# Default (Open plan) - free monthly 10mins Runtime.
OPEN_PLAN_CHANNEL="<PROVIDE CHANNEL NAME>"
OPEN_PLAN_INSTANCE="<PROVIDE INSTANCE AS CRN STRING>" # Must be a CRN String.
OPEN_PLAN_NAME="open"
# Optional (Upgrade) - Standard Plan
STANDARD_PLAN_CHANNEL="<PROVIDE CHANNEL NAME>"
STANDARD_PLAN_INSTANCE="<PROVIDE INSTANCE NAME>"
STANDARD_PLAN_NAME="standard"
STANDARD_IQP_API_URL="https://auth.quantum-computing.ibm.com/api/users/loginWithToken" # Update URL
STANDARD_IQP_BACKEND_URL="https://api.quantum-computing.ibm.com/runtime/backends" # Update URL
# Optional (Upgrade) - Premium Plan
PREMIUM_PLAN_CHANNEL="<PROVIDE CHANNEL NAME>"
PREMIUM_PLAN_INSTANCE="<PROVIDE INSTANCE AS HUB/PROJECT/ASSET PATH>"
PREMIUM_PLAN_NAME="premium"
PREMIUM_IQP_API_URL="https://auth.quantum-computing.ibm.com/api/users/loginWithToken" # Update URL
PREMIUM_IQP_BACKEND_URL="https://api.quantum-computing.ibm.com/runtime/backends" # Update URL
# Optional (Upgrade) - Dedicated Plan
DEDICATED_PLAN_CHANNEL="<PROVIDE CHANNEL NAME>"
DEDICATED_PLAN_INSTANCE="<PROVIDE INSTANCE AS HUB/PROJECT/ASSET PATH>"
DEDICATED_PLAN_NAME="dedicated"
DEDICATED_IQP_API_URL="https://auth.quantum-computing.ibm.com/api/users/loginWithToken" # Update URL
DEDICATED_IQP_BACKEND_URL="https://api.quantum-computing.ibm.com/runtime/backends" # Update URL
# Toggle exactly one plan "on":
OPEN_PLAN="on" # free plan
STANDARD_PLAN="off"
PREMIUM_PLAN="off"
DEDICATED_PLAN="off"
⚠️ Only one of
OPEN_PLAN,STANDARD_PLAN,PREMIUM_PLAN, orDEDICATED_PLANmay be set to "on" at a time.
📖 Quickstart Examples
Open Plan (default free tier) and Paid Plan
from qiskit_connector import connector, plan_type
from qiskit_ibm_runtime import SamplerV2 as Sampler, Session
current = plan_type() # -> detects plan set in environment configuration.
qpu = connector() # -> instantiate quantum (QPU) device connected backends in realtime.
backend = qpu.name # This is your backend
if current == "Open Plan":
sampler = Sampler(mode=backend) # -> "Open Plan" (session not supported)
print("Your Plan:", current) # -> "Open Plan"
print("Least busy QPU backend:", backend) # -> e.g. "ibm_brisbane"
elif current == "Paid Plan":
with Session(backend=backend.name) as session:
sampler = Sampler(mode=session) # -> "Paid Plan" (supports session)
print("Your Plan:", current) # -> "Paid Plan"
print("Least busy QPU backend:", backend) # -> e.g. "ibm_brisbane"
else:
raise ValueError(f"Unknown plan type: {current} - Contact IBM Support")
# --- do other things below with backend, quantum circuit, sampler & transpilation ------
📜 License
MIT License © 2025 Dr. Jeffrey Chijioke-Uche, IBM Quantum Ambassador & Research Scientist
Project details
Release history Release notifications | RSS feed
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 qiskit_connector-0.0.1.tar.gz.
File metadata
- Download URL: qiskit_connector-0.0.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e92e7e6a569d2af810f47c932c38becd13c0fc44d3a54f5b0161ed73b451442
|
|
| MD5 |
2aa901a8352cdfde9b4052492fe7bca3
|
|
| BLAKE2b-256 |
20981676b5f4ae810f7525561662265c7a59e3b2abf7d21997ce3f9d35859e03
|
File details
Details for the file qiskit_connector-0.0.1-py3-none-any.whl.
File metadata
- Download URL: qiskit_connector-0.0.1-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af0c9e9240d4d22cae30eb42ddf352b56c1ebaf789b29ed6eb59b4cd369cafa0
|
|
| MD5 |
4e95efd6d1dfd5bef7e7210a8a1982f7
|
|
| BLAKE2b-256 |
d64f94883e6b922be836d8797e230806d2c2d335d459311d56f3b676a1e452a8
|