Skip to main content

QCDrivers 🔧

pipeline tests coverage latest release PyPI version

This repository collects and shares QCoDeS drivers that are not available through qcodes or the contrib drivers repository. It may also contain proprietary drivers written by lab members of SQUAD Lab, including drivers developed in collaboration with partner companies.

Installation

QCDrivers requires Python 3.13 and can be installed with either uv or pip:

uv add qcdrivers
pip install qcdrivers

Layout

The drivers are grouped by manufacturer. Hardware-triggered (buffered) sweep nodes can be found under buffered/, where they follow the same grouping.

src/qcdrivers
├── basel/          amplifiers, dacs
├── bluefors/       fridges
├── entropy/        adr, heater
├── harvard/        dacs
├── keysight/       dmms, vna
├── qdevil/         qdac2
├── rwth/           mux
├── squad/          curry, helpers, mux
├── stanford/       vccs
└── buffered/
    ├── basel
    ├── keysight
    ├── qdevil
    ├── squad
    └── zurich

Please follow this structure when adding a new driver, using the existing drivers as a reference. Each package re-exports its public classes and declares __all__ to keep imports short and convenient.

Usage

from qcdrivers.basel.dacs import BaselDac2
from qcdrivers.buffered.keysight import NodeKeysightDMM
from qcdrivers.buffered.qdevil import NodeQDAC2
from qcdrivers.keysight.dmms import Keysight34461A

The drivers can be imported directly from their category package, as shown above. There is no need to import them from their individual module files.

The complete list of parameters for an instrument can be displayed through QCoDeS:

dac = BaselDac2("dac", address="...")
print(dac.parameters)

Buffered nodes

A buffered node wraps a QCoDeS instrument and provides the interface used by a Qanary buffered sweep: register_sweep, register_dependent, run_sweep, fetch, abort, and toplevel.

Import buffered nodes from their manufacturer package, for example qcdrivers.buffered.qdevil or qcdrivers.buffered.keysight.

Development

To set up a local development environment, clone the repository and install the development dependencies with uv:

git clone https://gitlab.com/squad-lab/qcdrivers
cd qcdrivers
uv sync --extra dev
uv run pre-commit install
Task Command
Run the tests uv run pytest
Lint (+ import sorting) uv run ruff check .
Format uv run ruff format .

Contributing

To contribute to the repository, please follow the directory structure above and open a merge request. Drivers should be well documented and, where possible, tested without hardware before submission. Please see the contributing guide for the complete development and submission process. Everyone is welcome to report bugs or request features by opening an issue.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qcdrivers-0.2.0.tar.gz (575.9 kB view details)

Uploaded Source

Built Distribution

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

qcdrivers-0.2.0-py3-none-any.whl (140.8 kB view details)

Uploaded Python 3

File details

Details for the file qcdrivers-0.2.0.tar.gz.

File metadata

  • Download URL: qcdrivers-0.2.0.tar.gz
  • Upload date:
  • Size: 575.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qcdrivers-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0833400b218a730031397398dcb45c7b1e8e991f47c56dca658042429ebfbd5c
MD5 bd9e4fa1379db5cceb35798f4b7e8979
BLAKE2b-256 c7bc6062d78ace89721c17d50d26a814b9e3f252aaf11d1b7b7589e026a978b5

See more details on using hashes here.

File details

Details for the file qcdrivers-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: qcdrivers-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 140.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qcdrivers-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12666546222210efe0e2b5204301c45e15f2db27c6bb2c21e3c7c63e584d9357
MD5 2c6790bdc47ed18608aff0eeee50645f
BLAKE2b-256 672e456460e5b35c4c99bce75d1b0b0f6993d220b1fefef939ecb4895f1a4713

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page