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.

Metadata

Release files for qcdrivers 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qcdrivers 0.6.0
File Size Uploaded
qcdrivers-0.6.0.tar.gz 581.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qcdrivers 0.6.0
File Interpreter ABI Platform
qcdrivers-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 726.0 kB

Release files / qcdrivers-0.6.0.tar.gz

Download URL qcdrivers-0.6.0.tar.gz
Size 581.7 kB
Tags Source
SHA-256 checksum
How to use checksums
974a900a886f10633425bbf47db840b4fc731dfc035727c14e64ec9c0e267f08
BLAKE2b-256 checksum
How to use checksums
68a8c2ea4e77be4f09926a4e0d42bd857d1f6b62e64f61365d40ab4e21928c6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}

Release files / qcdrivers-0.6.0-py3-none-any.whl

Download URL qcdrivers-0.6.0-py3-none-any.whl
Size 144.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a79000e769be35ce5def7d9c8f26218d9c456ef8b47fd226252baec0e58bd54a
BLAKE2b-256 checksum
How to use checksums
c4881bf056034f92efdef3b7bb89421efce1518034a780051f606b7b435e9aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}

Release history Release notifications | RSS feed

0.6.1

2 release files

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release 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