Skip to content

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 script
  • a458cd4 - 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