Skip to content

Releases: gilestrolab/ethoscopy

v2.2.0 — ipywidgets progress bars in loaders and HMM training

01 May 10:13

Choose a tag to compare

What's new

Long-running operations now show a real progress bar instead of streaming
per-item print lines. tqdm.auto is used under the hood, so you get
an ipywidgets-based bar inside Jupyter (Lab, Notebook, VS Code) and a clean
text bar in the terminal — no code changes needed on your side.

Loaders

  • load_ethoscope — single bar across all ROIs, postfix shows the
    current <machine> ROI_<n>. Per-ROI Loading... chatter is gone.
  • load_ethoscope_metadata — bar over databases.
  • download_from_remote_dir — bar over downloads, replacing the manual
    n/total and ETA prints.

All three accept a new progress=True kwarg; pass progress=False to
disable.

HMM

  • hmm_train wraps its outer training loop in a tqdm bar (HMM training).
    Convergence diagnostics and matrix tables are still shown, just routed
    through tqdm.write so they don't smear the bar.

Plotting helpers

  • The state-decoded plotting loops in behavpy_plotly and
    behavpy_seaborn now show a per-fly Plotting bar instead of one
    print line per fly.

Internal

  • Failure messages and the WAL-retry path inside
    read_single_roi_optimized now use tqdm.write.

New dependency

  • tqdm>=4.66,<5.0

Install

pip install -U ethoscopy

Full Changelog: v2.1.0...v2.2.0

v2.0.5 — package tutorial data separately

21 Apr 18:50

Choose a tag to compare

What's fixed

The 2.0.0 – 2.0.4 PyPI wheels silently shipped without the tutorial pickle files under src/ethoscopy/misc/tutorial_data/ because .gitignore's blanket *.pkl rule was being honoured by Hatchling's default VCS plugin when selecting wheel contents. On a fresh PyPI install, get_tutorial('overview') raised FileNotFoundError with no recovery guidance. Full writeup in #7.

What's new in 2.0.5

  • etho.download_tutorial_data() — one-liner helper that fetches the six tutorial pickles (~36 MB) from the repo into a user-writable cache. Idempotent, stdlib-only, cross-platform.
  • Three-location lookupget_tutorial and get_HMM now search, in order: <site-packages>/ethoscopy/misc/tutorial_data/, $ETHOSCOPY_TUTORIAL_DATA_DIR, ~/.cache/ethoscopy/tutorial_data/.
  • Clear error message when pickles are missing, listing every searched path and including the recovery snippet.
  • ethoscope-lab Docker image (tag ggilestro/ethoscope-lab:1.2) pre-populates the pickles during build — JupyterHub users never see the download step.
  • Tutorial notebooks carry an idempotent preamble cell before the first get_tutorial(...) call.
  • Packaging: explicit tool.hatch.build.targets.wheel.exclude entry so the intent no longer silently depends on .gitignore.

Upgrade

pip install --upgrade ethoscopy
python -c "import ethoscopy as etho; etho.download_tutorial_data()"

Tests

22/22 passing (10 original + 12 new covering URL coverage, full download, skip-if-present, overwrite, permission-error wrapping, env-var override, cache fallback).

Closes #7.