6.2.0 (June 21, 2026)#

Added#

  • Several new MultiCaseTimer features:

    • Accept run(setup: (data) -> data) callable (not timed; like timeit).

    • Accept run(stratify), including "auto" (minimize in-group cost ratios).

  • New performance helper features:

    • Add relative_to(): compare candidates against a baseline candidate (per-pair speedup table + geometric mean).

    • Add plot_run(relative_to=<baseline>): plot per-candidate speedup against a baseline.

Changed#

  • performance.plot_run() now accepts an explicit hue argument, and both x and hue may reference a test-data dimension name (not just 'candidate'/'data'). Enables e.g. plot_run(..., x='rows', hue='candidate', col='source').

  • MultiCaseTimer.run(progress=True) falls back to periodic logging when output is not a TTY (instead of tqdm carriage-return spam), making tqdm optional-er in non-interactive runs.

Fixed#

  • The MultiCaseTimer now respects skip_if during the autonumber phase.