- Replace bare metadata["sample_rate"] access with .get() + clear
ValueError in threshold_qualifier, energy_detector, cusum_annotator,
parallel_signal_separator, and signal_isolation
- Add --sample-rate option to energy, threshold, cusum, and separate
CLI commands with a pre-flight error if sample rate is still absent
- Normalize namespaced metadata keys (e.g. BlockGenerator:Foo:sample_rate)
to standard keys on legacy .npy load
- Cap threshold_qualifier smoothing window at 1% of signal length to
prevent over-smoothing short recordings into a flat envelope
- Warn when threshold or energy detector returns 0 annotations due to
constant-envelope signal; point to cusum as the right tool
- Enforce --overwrite before any work begins; error fires before load
and detection, not after
- Fix qualify_slice off-by-one that silently dropped the last slice
- Surface split failures in parallel_signal_separator via warnings.warn
instead of swallowing them silently
- Add threshold annotation example image to getting_started docs
Resolves unresolved merge conflict markers left in committed files across
the annotations, view, data, and CLI packages. Updates all remaining
imports from the old utils.* namespace to ria_toolkit_oss.datatypes,
ria_toolkit_oss.io, and ria_toolkit_oss.view equivalents.
Annotations package (new):
- Add threshold_qualifier with 3-pass hysteresis detector (Pass 1: strong
bursts, Pass 2: weak residual bursts, Pass 3: macro-window faint burst
detection), auto window_size scaled to 1ms, channel selection, and
stable noise_floor baseline throughout
- Add energy_detector, cusum_annotator, parallel_signal_separator,
qualify_slice, signal_isolation, annotation_transforms
- Add __init__.py exporting the four functions used by the CLI
- Fix all imports from utils.data → ria_toolkit_oss.datatypes
CLI annotate command (new):
- Port full annotate CLI from utils including list, add, remove, clear,
energy, cusum, threshold, and separate subcommands
- Fix imports from utils.* → ria_toolkit_oss.* and utils_cli.* →
ria_toolkit_oss_cli.*
- Safe overwrite logic: _annotated files always writable, originals
protected; --overwrite writes in-place only on _annotated inputs
CLI view command:
- Add 'annotations' as a valid --type, wiring view_annotations from
view_signal
view_signal.py:
- Add view_annotations function with blue/purple alternating palette and
threshold %-sorted drawing order (lower % renders on top)
recording.py (datatypes):
- Fix lazy imports in to_wav() and to_blue() from utils.io → ria_toolkit_oss.io
io/recording.py:
- Add compatibility shim in from_npy to remap utils.data.annotation.Annotation
to ria_toolkit_oss.datatypes.annotation.Annotation when loading .npy files
pickled by the utils package