Metadata-Version: 2.4
Name: pytesdaqx
Version: 0.2.0
Summary: TES detector acquisition, instrument control, and raw-data recording
Author: TESSERACT DAQ developers
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: <3.13,>=3.11
Description-Content-Type: text/markdown
Requires-Dist: numpy<2.0,>=1.26
Requires-Dist: PyYAML
Requires-Dist: h5py>=3.10
Requires-Dist: matplotlib
Requires-Dist: scipy
Requires-Dist: zarr<4,>=3
Requires-Dist: numcodecs
Requires-Dist: zstandard
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: ni
Requires-Dist: nidaqmx; extra == "ni"
Provides-Extra: visa
Requires-Dist: pyvisa; extra == "visa"
Provides-Extra: magnicon
Requires-Dist: paramiko; extra == "magnicon"
Provides-Extra: notebook
Requires-Dist: jupyter; extra == "notebook"
Provides-Extra: docs
Requires-Dist: mkdocs<2,>=1.6; extra == "docs"
Requires-Dist: mkdocs-material<10,>=9.5; extra == "docs"

# pytesdaqx

`pytesdaqx` is the Python acquisition and instrument-control framework used for TES detector readout. It supports continuous and finite NI-DAQmx acquisition, TES and SQUID control, YAML-defined sequences, and raw-data recording in Zarr or legacy HDF5. Zarr is the default for new
acquisition configuration files when `run.file_format` is omitted. **Supported Python versions
are 3.11 and 3.12.** Python 3.10 is not supported: the required `zarr>=3` has no published
wheel/sdist for 3.10.

## Documentation

The user manual is in [`docs/`](docs/index.md). Start with:

- [Installation](docs/installation/index.md)
- [Quick start](docs/user/quickstart.md)
- [Configuration files](docs/user/configuration/index.md)
- [Command-line tools](docs/user/cli/index.md)
- [Terminology](docs/user/terminology.md)
- [Data format](docs/user/data_format.md)
- [Developer guide](docs/developer/index.md)

To build the documentation website locally:

```bash
python -m pip install -e '.[docs]'
mkdocs serve
```

## Minimal local test

```bash
python -m pip install -e '.[dev]'

pytesdaqx-validate-config \
  --hardware examples/configuration/basic/hardware_fake.yaml \
  --run-setup examples/configuration/basic/run_setup.yaml \
  --acquisition-config examples/configuration/basic/acquisition_background.yaml

pytesdaqx-run \
  --hardware examples/configuration/basic/hardware_fake.yaml \
  --run-setup examples/configuration/basic/run_setup.yaml \
  --acquisition-config examples/configuration/basic/acquisition_background.yaml \
  --backend fake
```

The fake backend exercises configuration resolution and acquisition orchestration without contacting hardware.

## Development

Run the repository tests with:

```bash
pytest -q
```

Architecture, extension points, hardware support, testing, and release practices are documented in the [developer guide](docs/developer/index.md). The maintained example configurations are described in [`examples/README.md`](examples/README.md).
