Dataset management and measurement library for scientific data
Project description
qdrive
Dataset management and measurement library for the qHarbor data platform.
qdrive is the Python interface for creating, managing, and syncing scientific datasets with qHarbor.
Features
- 📦 Create & manage datasets — Store measurements with rich metadata (tags, attributes, descriptions)
- 📁 Multi-file support with versioning — Attach xarray, NumPy, JSON, HDF5 or any file, with automatic version tracking
- 🔍 Powerful search — Filter datasets by attributes, date range, tags, or text
- ☁️ Cloud sync — Automatic synchronization via the sync agent
- 📊 Measurement tools — Built-in
do0D,do1D,do2Dsweep functions using native qHarbor format, compatible with QCoDeS parameters
Installation
pip install qdrive
To install the background services (syncs your data to qHarbor automatically):
etiket-services install
Other useful commands (though the service is managed automatically in the background):
etiket-services status # Check service status
etiket-services start # Start services
etiket-services stop # Stop services
etiket-services restart # Restart services
etiket-services update # Update packages
etiket-services update --no-backends # Update core packages only
etiket-services uninstall # Remove services
For programmatic control of the sync agent (managing sync sources, viewing sync status, debugging), see the etiket-sdk package. You can also manage the services through the DataQruiser desktop application.
Quick Start
Authentication
import qdrive.authenticate as qauth
# See available institutions and login methods
qauth.print_login_methods()
# Log in with SSO (opens browser)
qauth.log_in_with_sso("MyInstitution")
# Check if logged in
qauth.is_logged_in() # Returns True/False
# Log out
qauth.logout()
Scopes
from qdrive.scopes import get_scopes, set_default_scope
# List available scopes
get_scopes()
# Set default scope (by name or UUID)
set_default_scope("MyScope")
Create a dataset
from qdrive import dataset
ds = dataset.create(
'Qubit T2* measurement',
tags=['calibration'],
attributes={'sample': 'Q7-R3', 'fridge': 'BlueFors-1'}
)
Add files to a dataset
import numpy as np
import xarray as xr
# Add various file types
ds['config.json'] = {'param1': 42, 'param2': 'value'}
ds['raw_data.npz'] = np.random.rand(100, 100)
ds['measurement.hdf5'] = xr.Dataset({'signal': (['time'], np.sin(np.linspace(0, 10, 100)))})
ds['script.py'] = __file__ # Attach the current script
Retrieve and access data
from qdrive import dataset
ds = dataset('59c40af3-cef3-49aa-8747-64707a9b080a') # Load by UUID
# Access files in multiple formats
xr_data = ds['measurement.hdf5'].xarray
json_data = ds['config.json'].json
Search datasets
from qdrive.dataset.search import search_datasets
results = search_datasets(
search_query='T2*',
attributes={'sample': 'Q7-R3'},
ranking=1
)
for ds in results:
print(ds.name, ds.uuid)
Documentation
- 📖 Full Documentation
- 🖥️ DataQruiser App — Browse and visualize your data
- 💬 Support
License
Proprietary — © 2026 QHarbor B.V. All Rights Reserved.
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 Distributions
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 qdrive-0.3.0b2-py3-none-any.whl.
File metadata
- Download URL: qdrive-0.3.0b2-py3-none-any.whl
- Upload date:
- Size: 59.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a32d0678a5b6b6feb1d515cc37ad7d092a7bff563f002064094e1cc7e03dccaf
|
|
| MD5 |
6fd2177931b8a9e65127d4329f3fe8d1
|
|
| BLAKE2b-256 |
4d1927702d8885a8e4549e5f88965543a663953e0340ad021c741a8968f29f2d
|