Skip to main content

pytesprocess

pytesprocess is the detector-processing layer used with raw acquisitions written by pytesdaqx. It provides random-event selection, software triggering, feature extraction, salting, IV/dIdV processing, noise/filter generation, and persistence of processed event products as Vaex HDF5 dataframes.

The current code targets Python 3.11+ and the modern pytesdaqx acquisition model (acquisition + stream).

Installation

For a development checkout:

pip install -e .

Runtime dependencies and the installed CLI entry point are defined entirely in pyproject.toml.

Command-line interface

Installing the package provides:

pytesprocess --help

The normal event-processing workflow is selected directly from the top-level command:

pytesprocess ACQUISITION \
    --config processing.yaml \
    --steps randoms trigger feature

--steps is mandatory. It accepts either whitespace-separated or comma-separated values, including mixed input:

--steps randoms trigger feature
--steps randoms,trigger,feature
--steps randoms,trigger feature

All are equivalent. The execution order is normalized internally to:

randoms -> salting -> trigger -> feature

The separate detector-characterization/filter workflows remain explicit:

pytesprocess filter ACQUISITION --config processing.yaml
pytesprocess ivsweep ACQUISITION
pytesprocess vibration ACQUISITION --config vibration.yaml

Example:

pytesprocess acquisition_I2_D20260807_T170432.zarr \
    --config continuous_data_processing_v2.yaml \
    --steps randoms,trigger,feature \
    --nrandoms 300 \
    --nevents 300 \
    --ncores 4

See docs/user/cli.md for the current CLI behavior.

Configuration

New processing configuration uses config_version: 2 and separates workflow sections explicitly:

config_version: 2

resources:
  filter_file: /path/to/filterdata.hdf5

trigger:
  global: {}
  channels: {}

feature:
  global:
    trace_length_msec: 20
    pretrigger_length_msec: 10
  presets: {}
  channels: {}

salting:
  global: {}
  channels: {}

filter: {}

Feature trace lengths are specified in milliseconds in v2 configuration. The resolver converts them to samples using the selected acquisition sample rate. Channel selectors include all, shell-style globs such as Z1P*, comma groups for applying one block to several independent channels, and explicit multi-channel expressions such as A|B.

See docs/user/configuration.md.

Processed dataframe identity

Each Vaex processing product has one dataframe-group identity:

dataframe_group_name
dataframe_group_id
dataframe_group_number
dataframe_file_index
processing_label

For example:

trigger_I2_D20260908_T123456/
  trigger_I2_D20260908_T123456_F0001.hdf5
  trigger_I2_D20260908_T123456_F0002.hdf5

F#### is a processing task/output shard index, not a second stream or series identifier. Raw provenance uses canonical stream fields such as stream_id, stream_number, and stream_trigger_index.

See docs/user/outputs.md.

Package structure

The current package layout intentionally separates reusable analysis objects from acquisition-processing workflows:

pytesprocess/
  core/       reusable analysis/data objects and algorithms
  process/    raw/dataframe processing executors
  config/     YAML loading, selection, resolution, validation
  salting/    salt metadata generation and waveform injection
  workflows/  multi-step orchestration used by the CLI
  cli/        command-line parsing and dispatch
  utils/      shared utilities and HDF5/dataframe helpers

See docs/developer/architecture.md for the current developer-oriented architecture.

Notes on multiprocessing

The existing Vaex/PyArrow and numerical-library thread limits are intentional. They were introduced to avoid thread oversubscription and unstable/slower multicore processing. They should not be removed or relocated without dedicated multicore benchmarking.

Metadata

Release files for pytesprocess 0.1.3

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

Source distribution (sdist)

Source distribution for pytesprocess 0.1.3
File Size Uploaded Provenance
pytesprocess-0.1.3.tar.gz 304.0 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 575.2 kB

Release files / pytesprocess-0.1.3.tar.gz

Download URL pytesprocess-0.1.3.tar.gz
Size 304.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2045117ca1ba9efc9c21236a410dbbb6d7b1e83a9a17d959daad974bc79bfc89
BLAKE2b-256 checksum
How to use checksums
78fce32995d8a2059da6d080accbedc8c67a0e6730c3352a1c869d5c1a5c236f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / pytesprocess-0.1.3-py3-none-any.whl

Download URL pytesprocess-0.1.3-py3-none-any.whl
Size 271.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
13380969ea8b4c07055032fa46e31c5d00226d4c7a09ac9586493ed7440c9f79
BLAKE2b-256 checksum
How to use checksums
23e1c57b91629c360234f6091ef914301d9d61c6b06bd208dbdf07422b85b958
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for pytesprocess 0.1.3

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.

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