Metadata-Version: 2.5
Name: thzdaq
Version: 0.0.6b3
Summary: ThzDAQ: SIS mixer bench control and measurements (command, client library, extras)
Project-URL: Homepage, https://github.com/yarvod/ThzDAQ
Project-URL: Documentation, https://github.com/yarvod/ThzDAQ/blob/master/docs/daemon.md
Project-URL: Issues, https://github.com/yarvod/ThzDAQ/issues
Project-URL: Releases, https://github.com/yarvod/ThzDAQ/releases
Author: yarvod
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Requires-Dist: thzdaq-api==0.0.6b3
Requires-Dist: thzdaq-cli==0.0.6b3
Provides-Extra: all
Requires-Dist: thzdaq-analysis==0.0.6b3; extra == 'all'
Requires-Dist: thzdaq-daemon==0.0.6b3; extra == 'all'
Requires-Dist: thzdaq-gui==0.0.6b3; extra == 'all'
Requires-Dist: thzdaq-mcp==0.0.6b3; extra == 'all'
Provides-Extra: analysis
Requires-Dist: thzdaq-analysis==0.0.6b3; extra == 'analysis'
Provides-Extra: daemon
Requires-Dist: thzdaq-daemon==0.0.6b3; extra == 'daemon'
Provides-Extra: gui
Requires-Dist: thzdaq-gui==0.0.6b3; extra == 'gui'
Provides-Extra: mcp
Requires-Dist: thzdaq-mcp==0.0.6b3; extra == 'mcp'
Description-Content-Type: text/markdown

# thzdaq

ThzDAQ controls a SIS mixer bench and measures it: bias, LO, IF power, temperatures,
I-V and noise-temperature measurements. A daemon holds the instruments; the window, the
`thzdaq` command, agents (Claude Code, Codex) and your scripts are its clients.

This package is the client: the `thzdaq` command and the library for scripts
(`from thzdaq import connect`). It is light, without instrument drivers or numpy.

```bash
uv tool install thzdaq          # the thzdaq command
uv add thzdaq                   # or pip install thzdaq: in your project or notebook
```

| Extra | What it adds |
|---|---|
| `thzdaq[analysis]` | analysis functions for your own calculations (numpy only) |
| `thzdaq[daemon]` | the bench daemon with instrument drivers: a bench on plain Python |
| `thzdaq[mcp]` | `thzdaq mcp`, the bench's tools for Claude Code and Codex |
| `thzdaq[gui]` | the ThzDAQ window (Python 3.11) |
| `thzdaq[all]` | all of the above |

The daemon serves only this machine. Without `thzdaq[daemon]` a client starts the
[ThzDAQ build](https://github.com/yarvod/ThzDAQ/releases) installed here (it notes
itself at its first start), or connects to the daemon already running. Take the version
of the build: `pip install thzdaq==<version>`; client and daemon check that they speak
the same contract.

```bash
thzdaq --simulate devices                 # instruments on simulators
thzdaq procedures                         # what can be measured
thzdaq run sis.current_vs_voltage --set voltage=0:7:351
```

```python
from thzdaq import connect

lab = connect()                      # finds the daemon, or starts it
bias = lab["sis_bias_1"]
bias.voltage_set = "2.3mV"           # = thzdaq set sis_bias_1 voltage_set 2.3mV
print(bias.read())                   # SI values that know their unit
run = lab.run("sis.current_vs_voltage", bias=bias, voltage="0:7:351")
run.wait()
iv = run.table("iv")
```

Documentation: [docs/daemon.md](https://github.com/yarvod/ThzDAQ/blob/master/docs/daemon.md)
(in Russian). The packages behind this one: `thzdaq-api` (contract and client),
`thzdaq-cli`, `thzdaq-analysis`, `thzdaq-core`, `thzdaq-instruments`, `thzdaq-daemon`,
`thzdaq-mcp`, `thzdaq-gui`; all of one release share its version.
