v0.4.4 - Multi-Run Script Improvements (2025-12-24)¶
What Changed?¶
This release extends the example script improvements to get_runs.py with structured logging and progress bars for multi-file measurements. The script now logs all measurement operations across multiple runs to JSON files and displays individual progress bars for each file during count-based collection. All improvements maintain backward compatibility with existing multi-run workflows.
What's New¶
Main Feature: Enhanced Multi-Run Script with Logging and Progress Bars¶
What it does: The get_runs.py example script now includes structured logging integration and visual progress bars for each file during count-based multi-file collection. Users receive real-time feedback on measurement progress per file and all operations are logged to JSON files for post-hoc analysis and debugging of multi-run sessions.
How to use it: Simply run the get_runs.py script as before - all enhancements are transparent:
# Progress bar shown for each file during count-based collection
uv run get_runs.py "1:300;2:320;3:310" 100 10
# Collect 10 files with 1000 events each
uv run get_runs.py "1:300;2:320;3:310" 1000 10
# Time-based measurement (60 seconds per file, 10 files total)
uv run get_runs.py "1:300;2:320;3:310" 60 10 --use-sec
# Verbose mode with detailed logging and progress
uv run get_runs.py "1:300;2:320;3:310" 100 10 -v
Logs are automatically saved to the platform-specific directory (e.g., ~/Library/Logs/kazunoko/kazunoko.json on macOS) with per-file collection details for troubleshooting multi-run sessions.
Installation¶
Quick Start¶
# Get the release
git checkout vX.Y.Z
# Setup
task env:setup
# Run CLI
uv run kazunoko --help
What's Different from the Last Version?¶
✅ Added¶
- Structured logging integration in get_runs.py example script
- Progress bars for count-based event collection (one per file)
- Per-file collection logging with file_id, filename, and event count
- Multi-run session logging with total events and files
- PEP 723 script dependencies: loguru, platformdirs
- JSON logging to platform-specific directories for multi-run analysis
🔧 Changed¶
- get_runs.py now calls setup_logger() for consistent logging behavior
- Progress bars display on stderr for count-based collection (one per file)
- Event streaming loop separated into count-based (with progress) and time-based (verbose mode) paths
- Example script dependencies documented in PEP 723 spec
- File collection loop enhanced with per-file logging at start and completion
🐛 Fixed¶
- None (enhancement release)
Is It Safe to Upgrade?¶
Backward Compatible: Yes
- All existing functionality preserved
- Multi-run script maintains same command-line interface
- Progress bars are automatic and transparent
- Logging happens in background without affecting workflows
- No changes to data output when piping to files
- Per-file progress bars enhance visibility without disrupting operations
Tests Passed¶
- ✅ Builds without errors
- ✅ Multi-run script logging initialization verified
- ✅ Per-file progress bars display correctly in terminal
- ✅ Pre-commit hooks passed (commitizen check)
Release Details¶
- Date: 2025-12-24
- Version: v0.4.4
- Files Changed: 1 (examples/get_runs.py, pyproject.toml)
- Commits:
7e8c173- feat: add structured logging and progress bars to get_runs.py example scripta458cd4- bump: version 0.4.3 → 0.4.4
Next Steps¶
- Extend logging and progress bars to other example scripts (get_thresholds.py, fit_thresholds.py, etc.)
- Consider adding elapsed time and ETA to progress bars
- Gather user feedback on progress bar behavior in multi-file scenarios
- Explore dashboard or monitoring tools for analyzing multi-run JSON logs