Skip to content

v2.9.0

Choose a tag to compare

@Nkzono99 Nkzono99 released this 09 Apr 17:07
· 98 commits to main since this release

What's New in v2.9.0

Shared RemoteSession Architecture

  • Cross-simulation comparison: Results from different simulations can now be freely mixed in the same remote_figure() block. A single shared RemoteSession Dask Actor lazily loads multiple Emout instances on one worker.
    with remote_figure(figsize=(12, 5)):
        plt.subplot(1, 2, 1)
        data_a.phisp[-1, :, 100, :].plot()
        plt.subplot(1, 2, 2)
        result_b.vxvz.plot(cmap="plasma")

Backtrace fetch() API

  • RemoteHeatmap.fetch() / RemoteXYData.fetch() transfer small result arrays to the client for full local matplotlib customisation (plt.xlabel, plt.subplot, custom annotations).

Package restructuring

  • Renamed emout.emoutemout.core with backward-compatible import shim (DeprecationWarning on old paths).

Bug fixes (from Codex review)

  • Data.axis(): np.arraynp.arange (would crash at runtime)
  • MultiGridDataSeries.iter: chain(iters)chain.from_iterable(iters) (yielded iterators instead of data)
  • vmin/vmax=0.0: falsy-zero silently ignored; now uses is not None check
  • VectorData.init: name fallback assigned None instead of x_data.name
  • sys.version_info: tuple comparison instead of fragile .minor check

Code quality

  • Extracted apply_offset() utility (replaced 6 duplicate _offseted() definitions)
  • Extracted _render_to_bytes() in RemoteSession (deduplicated 6 render methods)
  • Comprehensive English docstrings across all modules
  • Removed dead code: Units.translators(), unused from numpy import isin

Infrastructure

  • UID-based scheduler port (10000 + UID % 50000) with auto-retry on collision
  • Sphinx theme switched from RTD to Furo (dark mode, responsive design)

Documentation

  • Shared session architecture guide (EN/JA)
  • Multi-simulation comparison examples in README
  • fetch() local customisation guide
  • Port selection documentation