Customer-facing API reference for the three modules, written from source
plus the live test-script job. Scoped to the API: the signals.yml and
schedule.yaml contract gets only what a caller needs to read the API
correctly, not a full treatment.
Three behaviours documented because they are invisible from the source a
customer reads: a write batch is all-or-nothing on an unknown id, run()
skips logic_func entirely on a failed or empty read, and every method
swallows its exceptions so a falsy return conflates failure with empty.
The dbutils calls also set no timeout, unlike the signal calls.
pyproject.toml is unchanged; README.md is already its readme field.
#110 recorded pyproject.toml + __init__.py as verified on a real toolchain
but they were never committed; origin has nothing past d5203ce.
pyproject.toml is deliberately plain: the sidecar's pypi.ReadProjectMetadata
is a line scanner, not a TOML parser, and reads name and version as literal
single-line assignments under [project]. A dynamic version would break both
the publish check and the startup reconcile.
__init__.py re-exports the public API so src/i7lib is an importable package.
.gitignore keeps dist/ out of the tree — a committed wheel would travel in
gitea's source archive and trip the builder's one-wheel-in-dist check.