Qanary
Qanary simplifies measurement workflows and replaces QCoDeS for handling measurements.
Installation
Qanary requires Python 3.13. Install the latest release from PyPI:
uv add qanary
pip install qanary
Migrating from QCUtils
Qanary is the renamed successor to QCUtils. Replace the qcutils dependency
with qanary, change imports from qcutils... to qanary..., and rename
QCUTILS_HOME to QANARY_HOME. The default application directory has likewise
changed from ~/.qcutils to ~/.qanary.
Preparing a measurement project
We manage and run our measurements using the tool uv. To get started, follow the official Astral installation guide to install uv. It handles virtual environments and package dependencies for you, simplifying Python package management.
Initializing a Measurement
To start a measurement, first initialize a uv project with the desired measurement name:
uv init measurement_name
cd measurement_name
Add Qanary to the project with:
uv add qanary
Running Commands
Instead of manually activating a virtual environment and running python -m package.method, you can use uv to streamline this:
uv run -m package.method
Using pyproject.toml
If you prefer to skip the add commands, you can set up the project directly with a pyproject.toml file. Here's an example:
[project]
name = "example"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"qanary",
]
After updating the pyproject.toml file, you can sync the dependencies with:
uv sync
This will automatically fetch and install the required packages.
Measurement
For complete measurement scripts, see the examples directory.
Live & Disk Format
qanary uses a split data path:
- Live visualization: in-memory Zarr snapshots published through
qimchi-connect, with a temporary disk checkpoint for recovery - Completed measurement: a netCDF (
.nc) file in the configured data directory
Qimchi discovers a Qanary measurement automatically while it runs. After a successful final export, Qanary removes the temporary Zarr checkpoint and the netCDF file remains as the measurement record.
Development
We welcome contributions to qanary! To get started with development, clone the repository:
git clone https://gitlab.com/squad-lab/qanary
Navigate into the cloned directory and install the package in development mode:
cd qanary
uv sync --extra dev
uv run pre-commit install
Authors
- Spandan Anupam: s.anupam@fz-juelich.de
- Simon Schreibing: s.schreibing@fz-juelich.de
- Jyotirmaya Shivottam: shivottam@proton.me
Release files for qanary 0.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qanary-0.12.0.tar.gz | 307.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qanary-0.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 354.5 kB
Release files / qanary-0.12.0.tar.gz
| Download URL | qanary-0.12.0.tar.gz |
|---|---|
| Size | 307.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6dba05b1cf94c9f5b78585297df6e97d52c8ddf19d87556e9cd4156d384f98f1
|
|
BLAKE2b-256 checksum How to use checksums |
cb23b1e4803fb5fa16096cf9161ca60c11d30b05d7ad38d4eae2571835b76bcf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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 / qanary-0.12.0-py3-none-any.whl
| Download URL | qanary-0.12.0-py3-none-any.whl |
|---|---|
| Size | 46.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a3835e71e5dd07818ed16d5acb1c16a7c3c11352b0975383e602a65ea42ef760
|
|
BLAKE2b-256 checksum How to use checksums |
1cf71fc70b2417ef45e83d3cd00ee6889d48a723d077eb207900489bbbf110de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}
|