Metadata-Version: 2.4
Name: readback
Version: 0.1.0
Summary: Validation via echo-confirmation: readback(value, confirm_fn).
Project-URL: Homepage, https://github.com/coldbricks/readback
Project-URL: Repository, https://github.com/coldbricks/readback
Project-URL: Issues, https://github.com/coldbricks/readback/issues
Author-email: Coldbricks <coldbricks@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: confirm,echo,readback,safety,validation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# readback

Validation via echo-confirmation. Send a value, read it back through a
confirm function, and fail closed on mismatch — the classic command-then-verify
pattern used in safety and control systems.

## Install

```bash
pip install readback
```

## Usage

```python
from readback import readback, ReadbackError

sent = {"motor": "arm", "rpm": 1200}
confirmed = readback(sent, confirm_fn=lambda: {"motor": "arm", "rpm": 1200})
assert confirmed == sent

try:
    readback(sent, confirm_fn=lambda: {"motor": "arm", "rpm": 0})
except ReadbackError as e:
    assert e.expected == sent
    assert e.got["rpm"] == 0
```

## Roadmap

This is an early **0.1.0** release with active development planned:

- Tolerance / partial-match policies
- Async confirm functions
- Structured logging of mismatch traces

## Author

Coldbricks — coldbricks@gmail.com
