ecc935482b
Tighten the Series III / Series IV boundary so UI and storage dispatch
on a clean signal instead of sniffing filenames or applying magnitude
heuristics.
Phase 1 — events.device_family column ("series3" | "series4"):
self-applying migration with filename-based backfill of existing rows
(1,132 backfilled on prod 2026-05-20); plumbed through every import
path (BW endpoint, IDF endpoint, ACH server, BW CLI, sidecar
backfill); UPSERT preserves via COALESCE; UI dispatches on it.
Phase 2 — extract micromate/ package alongside minimateplus/:
native IdfEvent / IdfReport / IdfPeaks / IdfProjectInfo /
IdfSensorCheck (mic in dB(L), not pseudo-psi); moved
idf_ascii_report.py from sfm/ to micromate/; refactored
save_imported_idf to use IdfEvent and bridge to minimateplus.Event at
the SQL-insert boundary; idf_file.py stub for the future binary codec.
Phase 3 prep — docs/idf_protocol_reference.md captures the two
observed Thor binary header signatures (1,012 newer-firmware files vs
2 old files whose layout is byte-for-byte BW-STRT-compatible), file-size
hints suggesting int8 sample encoding, open questions in dependency
order, and a concrete first-session plan for cracking the codec.
Also rolled in the v0.18.1 hotfixes that motivated this work:
- idf_ascii_report parser now handles "<0.005 in/s" (below-threshold)
and "N/A" markers without leaving raw strings in numeric DB columns.
- sfm_webapp.html: defensive _ppvFmt / mic formatter so future
data-shape drift can't kill the whole events table render.
All 1,014 example-data sidecars round-trip through the new package.
See CHANGELOG.md for full notes.
24 lines
614 B
TOML
24 lines
614 B
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "seismo-relay"
|
|
version = "0.19.0"
|
|
description = "Python client and REST server for MiniMate Plus seismographs"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"fastapi>=0.104",
|
|
"uvicorn[standard]>=0.24",
|
|
"pyserial>=3.5",
|
|
"sqlalchemy>=2.0",
|
|
"python-multipart>=0.0.7",
|
|
"h5py>=3.10",
|
|
"numpy>=1.24",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
# Auto-discovers minimateplus/, micromate/, sfm/, bridges/ as packages
|
|
where = ["."]
|
|
include = ["minimateplus*", "micromate*", "sfm*", "bridges*"]
|