Skip to main content

eTiKeT Sync Agent - Core Tools Connector

Connector for synchronizing core_tools datasets with the eTiKeT platform. This connector reads measurements from core_tools PostgreSQL databases and syncs them to the cloud.

Installation

This connector depends on core_tools and pulse_lib, which are hosted on a private TU Delft GitLab repository. You must have these packages cloned locally and install them from their folder locations.

from etiket_sdk.sync import Connectors

# 1. Install dependencies from local folders
Connectors.install_from_local("/path/to/pulse_lib")
Connectors.install_from_local("/path/to/core_tools")

# 2. Install the connector
Connectors.install_from_pypi("etiket-sync-agent-core-tools")

The package is automatically discovered by etiket_sync_agent through the entry-point system. Once installed, you can verify with:

print(Connectors.list())
connector = Connectors.get("etiket_sync_agent_core_tools")
print(connector)

What Gets Synchronized

When a core_tools measurement is synced, the following data is extracted and uploaded:

core_tools Data eTiKeT Field Description
exp_uuid alt_uid Unique identifier for the measurement
name name Name of the dataset
run_timestamp collected When the measurement was taken
keywords keywords Keywords associated with the measurement
sample_name attributes["sample"] Sample name for the measurement
set_up attributes["set-up"] Experimental setup name
xarray dataset HDF5 file The actual measurement data

Additional Metadata

The connector also extracts and synchronizes:

  1. Snapshot data: Instrument settings stored in the measurement snapshot
  2. Pulses data: AWG pulse sequences (if available in snapshot)
  3. Gates data: Gate voltages (if available in snapshot)

Configuration

The core_tools connector requires a CoreToolsConfigData configuration with the following fields:

Field Type Required Description
dbname str Yes Name of the PostgreSQL database
user str Yes Database username
password str Yes Database password
host str No Database host (default: localhost)
port int No Database port (default: 5432)

Example Configuration

from etiket_sync_agent_core_tools import CoreToolsConfigData

config = CoreToolsConfigData(
    dbname="my_experiments",
    user="postgres",
    password="secret",
    host="localhost",
    port=5432
)

Scope Mapping

Core_tools supports the concept of scope (or project in older versions) to organize measurements. When syncing, the connector maps core_tools scopes to eTiKeT scopes.

How Scope Mapping Works

  1. If scope exists in core_tools: The scope name is used as the scope_identifier
  2. If scope is None: A generated identifier is used: CT_PROJECT_{project_name}

Assigning Scope Mappings

After datasets are discovered, the user must map the scope_identifier to an actual eTiKeT scope. There are two ways to do this:

  1. Auto-assignment: If the scope_identifier exactly matches an existing eTiKeT scope name, use the auto-assign feature
  2. Manual mapping: Use the etiket_sdk or the DataQruiser GUI to manually map identifiers to scopes

For more information, see the etiket_sdk documentation or use our GUI application (DataQruiser).


Features

  • Direct integration with core_tools PostgreSQL databases
  • Automatic metadata extraction from snapshots
  • Live sync support for running measurements
  • Pulse sequence extraction from AWG instruments
  • Gate voltage extraction in the metadata of the hdf5 file.

Live Measurement Sync

The core_tools connector supports live synchronization of in-progress measurements. When a measurement is detected as "running", the sync agent:

  1. Creates the dataset entry in eTiKeT
  2. Streams data points as they are written to the database
  3. Uploads pulse metadata (if available)
  4. Marks the dataset as complete when the measurement finishes

Timeout Handling

If no new data is written for 30 minutes, the live sync assumes the measurement has stalled and raises a timeout error.

Requirements

  • Python >= 3.10
  • core_tools (private package from TU Delft GitLab)
  • PostgreSQL database with core_tools schema

License

Copyright © 2025 QHarbor. All Rights Reserved. See LICENCE for details.

Metadata

Release files for etiket-sync-agent-core-tools 0.3.0

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

Built distribution (wheel)

Table of built distributions (wheels) for etiket-sync-agent-core-tools 0.3.0
File Interpreter ABI Platform Actions
etiket_sync_agent_core_tools-0.3.0-py3-none-any.whl Python 3 none any Details for etiket_sync_agent_core_tools-0.3.0-py3-none-any.whl

Release files / etiket_sync_agent_core_tools-0.3.0-py3-none-any.whl

Download URL etiket_sync_agent_core_tools-0.3.0-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
10ec7e06dd52aebdaca3a2b84ad9b11654d3c184efef867d4ff5b89f395cb4fa
BLAKE2b-256 checksum
How to use checksums
2fed8c2d4cf403f7eae9a516636fc89d17f8fc835d97652f74972f6fd19a8412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for etiket-sync-agent-core-tools 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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