Skip to content

Update qbraid requirement from <0.12.0,>=0.11.1 to >=0.12.2,<0.13.0#291

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/qbraid-gte-0.12.2-and-lt-0.13.0
Open

Update qbraid requirement from <0.12.0,>=0.11.1 to >=0.12.2,<0.13.0#291
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/pip/qbraid-gte-0.12.2-and-lt-0.13.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 13, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on qbraid to permit the latest version.

Release notes

Sourced from qbraid's releases.

qBraid-SDK 0.12.2

Release 0.12.2 (July 11, 2026)

Summary

Added

  • Added support for Python 3.14: added the Programming Language :: Python :: 3.14 classifier and 3.14 to the CI test matrices (#1085)

  • Added an optional token_provider to OpenQuantumSession, letting a caller supply a per-user access token on demand (token_provider: () -> (access_token, expires_at_epoch)) instead of the session minting its own via client_credentials. When set, _fetch_token calls the provider and _ensure_token re-invokes it on near-expiry, so long wait_for_preparation waits still get a fresh token; client_id/client_secret are not required in this mode. Purely additive — the existing client_credentials path is unchanged (#1240)

  • Added cirq_to_pytket and pytket_to_cirq transpiler conversions (via the pytket-cirq extension), giving a direct Cirq <-> PyTKET edge in the conversion graph. (#1208)

  • Added pytket_to_pyqir transpiler conversion (via the pytket-qir extension), giving a direct PyTKET -> PyQIR edge in the conversion graph. (#1208)

  • Added pyquil_to_qasm3 conversion, providing a direct transpiler edge from pyQuil to OpenQASM 3 (previously only reachable via a lossy multi-hop path through cirq), and completing the pyQuil <-> OpenQASM 3 round trip alongside openqasm3_to_pyquil (#1203). (#1208)

  • QASM conditional (if) statement support for Cirq conversions: qasm2_to_cirq and qasm3_to_cirq now translate classically-controlled (if (c == val)) operations into Cirq, backed by a new normalize_if_blocks pass that rewrites QASM 3 braced if blocks to the single-line form Cirq's parser accepts (#1183)

  • Added openqasm3_to_pyquil conversion, providing a direct, pyqasm-backed transpiler edge from OpenQASM 3 to pyQuil (previously only reachable via a lossy multi-hop path through cirq). Supports the standard gate set (incl. modifiers and controlled gates via pyqasm decomposition), measurement, barrier (→ FENCE), reset (→ RESET), delay (→ DELAY), and if (c == 0|1) classical feedforward (→ JUMP-WHEN); declared-but-idle qubits are padded with I so the operator dimension matches the source (#1203)

  • Added include_retired parameter to QbraidProvider.get_devices method to optionally include retired devices in the device list (#1201)

  • Added PasqalProvider, PasqalDevice, and PasqalJob classes implementing the qBraid runtime interface for Pasqal Cloud Services (neutral-atom QPUs and emulators, using Pulser as the native IR). (#1196)

from pulser import Register, Sequence
from pulser.devices import AnalogDevice
from qbraid.runtime.pasqal import PasqalProvider
provider = PasqalProvider(
username="you@example.com",
password="...",
project_id="...",
)
device = provider.get_device("EMU_FREE")
reg = Register({"q0": (0.0, 0.0)})
sequence = Sequence(reg, AnalogDevice)
job = device.run(sequence, shots=200)
result = job.result()
print(result.data.get_counts())

  • Added qasm2_to_qat and cirq_to_qat extras-based conversion functions, integrating myQLM (qat.core.wrappers.circuit.Circuit) as a new "qat" program type in the transpiler conversion graph #1212.

  • Added qbraid/runtime/rigetti/availability.py (modeled on qbraid/runtime/aws/availability.py) exposing is_in_maintenance() and next_available_time(), derived from the QCS maintenance calendar. RigettiDevice gains maintenance_calendar() (the raw RFC 5545 maintenance iCalendar fetched from the QCS REST API GET /v1/calendars/{id}) and availability_window(), which returns (is_available, "HH:MM:SS"_until_switch, switch_datetime) and merges contiguous/overlapping maintenance windows so the reported next-available time is when the device truly leaves maintenance (#1239)

Improved / Modified

  • Replaced logging.getLogger(__name__) with centralized from qbraid._logging import logger in Rigetti, Origin Quantum, and Quantinuum runtime modules (#1197)
  • Modified get_devices and get_device methods in IonQProvider to use public endpoint access instead of authenticated requests (#1194)
  • Updated QbraidProvider.get_devices method to accept **kwargs and pass them through to the underlying client.list_devices call (#1201)
  • Removed the cirq-specific fallback in transpile that, on a failed conversion step, round-tripped the cirq intermediate through QASM (circuit_from_qasm(circuit.to_qasm())) and retried. This flatten-and-retry is already provided generically by the conversion graph's cirq -> qasm2 -> target paths combined with the multi-path retry, making the hardcoded special case redundant (cirq conversion coverage is unchanged) (#1217)
  • openqasm3_to_pyquil now emits native pyQuil two-qubit gates (CPHASE, RXX, RYY, RZZ, XY, ISWAP, CSWAP) by keeping them external to pyqasm.unroll, instead of expanding them into long RZ/RX/CNOT sequences (e.g. cp went from 17 instructions to one CPHASE). The results match exactly, including global phase. This also fixes xy, which previously raised Unsupported gate: sxdg because its decomposition produced an sxdg the converter could not handle (#1224)

... (truncated)

Changelog

Sourced from qbraid's changelog.

[0.12.2] - 2026-07-11

Added

  • Added support for Python 3.14: added the Programming Language :: Python :: 3.14 classifier and 3.14 to the CI test matrices (#1085)

  • Added an optional token_provider to OpenQuantumSession, letting a caller supply a per-user access token on demand (token_provider: () -> (access_token, expires_at_epoch)) instead of the session minting its own via client_credentials. When set, _fetch_token calls the provider and _ensure_token re-invokes it on near-expiry, so long wait_for_preparation waits still get a fresh token; client_id/client_secret are not required in this mode. Purely additive — the existing client_credentials path is unchanged (#1240)

  • Added cirq_to_pytket and pytket_to_cirq transpiler conversions (via the pytket-cirq extension), giving a direct Cirq <-> PyTKET edge in the conversion graph. (#1208)

  • Added pytket_to_pyqir transpiler conversion (via the pytket-qir extension), giving a direct PyTKET -> PyQIR edge in the conversion graph. (#1208)

  • Added pyquil_to_qasm3 conversion, providing a direct transpiler edge from pyQuil to OpenQASM 3 (previously only reachable via a lossy multi-hop path through cirq), and completing the pyQuil <-> OpenQASM 3 round trip alongside openqasm3_to_pyquil (#1203). (#1208)

  • QASM conditional (if) statement support for Cirq conversions: qasm2_to_cirq and qasm3_to_cirq now translate classically-controlled (if (c == val)) operations into Cirq, backed by a new normalize_if_blocks pass that rewrites QASM 3 braced if blocks to the single-line form Cirq's parser accepts (#1183)

  • Added openqasm3_to_pyquil conversion, providing a direct, pyqasm-backed transpiler edge from OpenQASM 3 to pyQuil (previously only reachable via a lossy multi-hop path through cirq). Supports the standard gate set (incl. modifiers and controlled gates via pyqasm decomposition), measurement, barrier (→ FENCE), reset (→ RESET), delay (→ DELAY), and if (c == 0|1) classical feedforward (→ JUMP-WHEN); declared-but-idle qubits are padded with I so the operator dimension matches the source (#1203)

  • Added include_retired parameter to QbraidProvider.get_devices method to optionally include retired devices in the device list (#1201)

  • Added PasqalProvider, PasqalDevice, and PasqalJob classes implementing the qBraid runtime interface for Pasqal Cloud Services (neutral-atom QPUs and emulators, using Pulser as the native IR). (#1196)

from pulser import Register, Sequence
from pulser.devices import AnalogDevice
from qbraid.runtime.pasqal import PasqalProvider
provider = PasqalProvider(
username="you@example.com",
password="...",
project_id="...",
)
device = provider.get_device("EMU_FREE")
reg = Register({"q0": (0.0, 0.0)})
sequence = Sequence(reg, AnalogDevice)
job = device.run(sequence, shots=200)
result = job.result()
print(result.data.get_counts())

  • Added qasm2_to_qat and cirq_to_qat extras-based conversion functions, integrating myQLM (qat.core.wrappers.circuit.Circuit) as a new "qat" program type in the transpiler conversion graph #1212.

  • Added qbraid/runtime/rigetti/availability.py (modeled on qbraid/runtime/aws/availability.py) exposing is_in_maintenance() and next_available_time(), derived from the QCS maintenance calendar. RigettiDevice gains maintenance_calendar() (the raw RFC 5545 maintenance iCalendar fetched from the QCS REST API GET /v1/calendars/{id}) and availability_window(), which returns (is_available, "HH:MM:SS"_until_switch, switch_datetime) and merges contiguous/overlapping maintenance windows so the reported next-available time is when the device truly leaves maintenance (#1239)

Improved / Modified

  • Replaced logging.getLogger(__name__) with centralized from qbraid._logging import logger in Rigetti, Origin Quantum, and Quantinuum runtime modules (#1197)
  • Modified get_devices and get_device methods in IonQProvider to use public endpoint access instead of authenticated requests (#1194)
  • Updated QbraidProvider.get_devices method to accept **kwargs and pass them through to the underlying client.list_devices call (#1201)
  • Removed the cirq-specific fallback in transpile that, on a failed conversion step, round-tripped the cirq intermediate through QASM (circuit_from_qasm(circuit.to_qasm())) and retried. This flatten-and-retry is already provided generically by the conversion graph's cirq -> qasm2 -> target paths combined with the multi-path retry, making the hardcoded special case redundant (cirq conversion coverage is unchanged) (#1217)
  • openqasm3_to_pyquil now emits native pyQuil two-qubit gates (CPHASE, RXX, RYY, RZZ, XY, ISWAP, CSWAP) by keeping them external to pyqasm.unroll, instead of expanding them into long RZ/RX/CNOT sequences (e.g. cp went from 17 instructions to one CPHASE). The results match exactly, including global phase. This also fixes xy, which previously raised Unsupported gate: sxdg because its decomposition produced an sxdg the converter could not handle (#1224)

Fixed

  • Fixed BraketProvider._fetch_resources (used by get_tasks_by_tag and, transitively, list_jobs(tags=...)) reading only the first page of the AWS Resource Groups Tagging API. It called get_resources once per region with no PaginationToken loop, so tag-based task lookups silently capped at ~100 resources and missed matches in accounts with more tagged tasks. It now follows PaginationToken until exhausted, returning all matching task ARNs across every page (#1253)

... (truncated)

Commits
  • a0ebd37 Bump patch version to 0.12.2 (#1257)
  • 265f5d7 Update CHANGELOG for version 0.12.2 [no ci] (#1256)
  • 76ee743 fix(aws): paginate get_resources in _fetch_resources (#1253)
  • 27e976d fix(ibm): serialize list query params with doseq in _ibm_api_get (#1252)
  • fa385ac test(ibm): seed FakeDevice backend to fix flaky test_transform_run_input (#1254)
  • 3dfc560 fix(aws): stop leaking Braket cost Tracker into the global tracking context (...
  • 83aa5a0 ci: make changelog workflow append-only so it can't delete entries (#1250)
  • 00dbcb3 ci: fix changelog workflow — retired model claude-sonnet-4-20250514 (#1249)
  • 59a2a5f fix(openquantum): clearer error when user has no Open Quantum organization (#...
  • 970284b fix: model Rigetti device availability from QCS maintenance calendar (#1239)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [qbraid](https://github.com/qBraid/qBraid) to permit the latest version.
- [Release notes](https://github.com/qBraid/qBraid/releases)
- [Changelog](https://github.com/qBraid/qBraid/blob/main/CHANGELOG.md)
- [Commits](qBraid/qBraid@v0.11.1...v0.12.2)

---
updated-dependencies:
- dependency-name: qbraid
  dependency-version: 0.12.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants