Skip to content

Overhaul 1.0 - #9

Merged
nathanchenseanwalter merged 101 commits into
mainfrom
overhaul-1.0
Oct 7, 2026
Merged

nathanchenseanwalter merged 101 commits into
mainfrom
overhaul-1.0

Conversation

@nathanchenseanwalter

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI and others added 30 commits February 10, 2026 17:01
[WIP] Fix bug causing errors in application
Updated CPU processing time estimate in README.
Added a link to a preprint for additional information.
- big_tf_unet_ablation: automated complex-vs-magnitude STFT ablation and TJ-II
  uncertainty pipeline, with foundation_model / raw_fast loaders
- big_tf_unet: restore early stages to read foundation_model-format data
  (step_0f loader, per-modality configs, cgroup-aware parmap, UNet import fix)
- preprocess: raw_fast -> foundation_model format converter
- assets: replace 53 MB example.gif with 1.1 MB webm; add large-file guard
  (pre-commit hook + CI job) and CONTRIBUTING; remove vestigial FusionAIHub submodule
- chore: ruff cleanup; correct pytest config section header
A repo-relative <video src> doesn't render on github.com; point it at the
uploaded user-attachments asset, which GitHub serves as a playable video.
Move all manuscript figure-generation code, paper/benchmark eval scripts,
their detection/PR-sweep helpers, and the paper tests into the gitignored
dev/paper/ tree so they no longer ship in the wheel or break CI.

- src/tokeye/extra/eval/{events,sweep,fold_stats}.py -> dev/paper/eval/
  (extra/eval now ships only the silbidopy + D3D loaders)
- scripts/eval/*.py + *.ipynb -> dev/paper/eval/; eval_*.sh + ablation/eval.sh
  -> dev/paper/eval/commands/ (paths updated); scripts/test_ablation_smoke.py too
- output/nature_figures -> dev/paper/figures (was already untracked)
- 7 paper/ablation tests -> dev/paper/tests/ with a conftest that puts
  dev/paper/eval on sys.path; tests/ keeps only core + dep-free ablation tests
- moved scripts/tests now import the helpers locally (from sweep/events/
  fold_stats) instead of tokeye.extra.eval.*

CI: the four collection errors (h5py/pybaselines/tifffile/lightning) are gone
because the tests importing tokeye.training.big_tf_unet_ablation.step_* moved
out of tests/. Also:
- add [project.optional-dependencies] train so `pip install tokeye[train]` works
- align CI python matrix to 3.13/3.14 (matches requires-python >=3.13)
chore: carve paper figures/eval out of the package; fix CI collection
- Implemented step 0a to compute spectrograms from raw HDF5 signals and save as multichannel TIFFs.
- Created step 1 to generate semantic labels using a trained model.
- Developed step 1a (alternative) to generate semantic labels from pre-computed spectrograms.
- Added step 2a to create COCO dataset from semantic labels.
- Implemented step 2b to convert COCO dataset to YOLO format.
- Established step 3 for training Faster R-CNN and Mask R-CNN models.
- Added training scripts for YOLOv8 detection and segmentation.
- Created step 4 for saving model checkpoints.
- Introduced necessary utility functions and configurations for dataset handling and model training.
Add training pipeline for AE CNN models
…les)

Carve reusable, gradio-free logic out of the app so a later CLI task and
the app can share it: compute_stft (transforms.py), model_infer/warmup/
signal_to_spectrogram (inference.py), HF Hub + local model resolution
(hub.py), and a deterministic synthetic demo signal (examples.py).
src/tokeye/app/ is untouched; a later task rewires it to delegate here.

Adds huggingface-hub and tqdm as core dependencies.
…ules

- analyze.py: default-populated transform_args (kills the silent-None trap
  where nothing works until Setup Transform is clicked), registry-aware
  model dropdown with automatic HF download + cache-aware toast, one-click
  "Analyze" button (ensure_model -> infer -> visualize), "Load Example
  Signal" button backed by tokeye.examples, friendlier copy.
- load.py: delegates model loading/warmup to tokeye.hub/tokeye.inference,
  compute_stft to tokeye.transforms; deletes the now-redundant torch.load
  branching and inline warmup loop.
- visualize.py: enhance() copies its input before mutating it in place, so
  repeated Visualize clicks no longer corrupt the stored inference output.
- __main__.py: extracts main(port, share, open_browser), replaces ad-hoc
  sys.argv parsing with argparse, loads the logo via importlib.resources
  (guarded, no crash if missing) now that it's packaged under
  src/tokeye/app/assets/.
- Deletes dead modules superseded by the Task 1 core package: app/analyze
  /transforms.py, app/processing/, app/utils/analyze.py, tokeye/analysis/
  (all already had stale TokEye.* import paths from before the package
  rename).
- Adds tests/test_app_load.py covering model_load delegation, find_models,
  load_single 1D/2D handling, the new is_model_cached helper, and a
  create_app() smoke-construction test.
gr.Warning does not halt a gradio .then() chain, so the previous
warn-first step still let ensure_model trigger a real model download
plus warmup on a no-signal click. ensure_model now takes
signal_transform and short-circuits (warn + return model state
unchanged) when it is None; downstream model_infer/show_image already
no-op on None. Adds three ensure_model tests covering skip/passthrough/
cold-load paths, and removes the now-unused SIGNAL_DIR constant from
app/analyze/load.py.
Adds tokeye.batch (gradio-free, Agg-backend batch runner: collect_inputs,
load_input, save_overlay_png, process_file, run_batch) and tokeye.cli
(argparse entry point with app/run/download/example subcommands, heavy
imports deferred into handlers so `tokeye --help` is instant and `tokeye
run` never touches gradio). Wires up the `tokeye` console script.
- tokeye example: normalize extension-less --output to .npy before saving
  so the printed path is the file np.save actually writes
- tokeye run: catch FileNotFoundError from a mistyped --model path and
  emit a clean stderr error (exit 2) instead of a raw traceback
- test_loads_model_once_via_hub: use two input files so once-per-run is
  distinguishable from once-per-file
…ae/hdf5/all extras; exclude training from dists
…e wheel, dependency floors and a 2 MB guard; 1.0 README, CHANGELOG, CITATION, CONTRIBUTING and conda env
…issions, range-wide 2 MB guard, fuller smoke test; valid CITATION; changelog and README fixes
…en the exact view cannot follow the model; exactness claim scoped
…es only for globs; clearer bad-input errors; range-checked numeric flags
…elects the array; MATLAB v7.3 orientation; case-insensitive fs; stricter 2-column tables
…1 flags); Segmentation keeps recorded settings and axes; alfvenspec keeps _ae_masks.npy
…hvision gets the ae hint; results record weights provenance, not local paths
…vice under xdist; --write golden|stft; platform-aware tolerance; drop dead ruff ignore; 2 MB guard in its own workflow; conda CPU note keeps the torch floor
…s, column j at j*hop/fs); ELM times and frequency on that timebase; stricter fs and timebase checks; goldens regenerated
…R_NAME, one-line errors; python -m tokeye.app without gradio; info prints as it goes and exits 1 on a failed check; example keeps the given name
…E and asks for another --port; elmspec labels results with the model's file name
…s one error: line; warnings print as one warning: line; tokeye run says where its outputs went; python -m tokeye
…gmentation.load explains a bare mask; README shows load_signal and plot
…ether, like process_file; CHANGELOG names run_batch's progress bar
…ors; test helpers build errors with the hub's own HTTP library
@nathanchenseanwalter
nathanchenseanwalter merged commit 72fb5dd into main Oct 7, 2026
10 checks passed
@nathanchenseanwalter
nathanchenseanwalter deleted the overhaul-1.0 branch October 7, 2026 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants