Version 0.2#
DataLab-Kernel Version 0.2.11 (2026-02-15)#
🛠️ Bug Fixes since version 0.2.10#
Fixed ROI labels showing generic “ROI” text instead of user-defined titles in both Plotly and Matplotlib backends — ROI shapes now display the title attribute when set, falling back to “ROI 1”, “ROI 2”, etc.
Fixed Plotly multi-signal overlay showing “new text” on the second ROI instead of a proper label (the annotation text was inadvertently set to
None, triggering Plotly’s default placeholder)Fixed missing ROI title annotations on image ROI shapes (rectangles, circles, polygons) in both Plotly and Matplotlib backends
Fixed non-uniform image detection using the wrong attribute name (
uniform_coordsinstead ofis_uniform_coords), which caused non-uniform coordinate images to render incorrectly
🔧 Other changes since version 0.2.10#
Revamped the Advanced Showcase notebook with more relevant examples: double- Gaussian peaks for FWHM demo, Butterworth bandpass filter for log-scale display, per-ROI statistics and centroid overlays in analysis results
Added
requirements.txtwith package dependenciesCI: PyPI deployment now gates on test suite passing before publishing
DataLab-Kernel Version 0.2.10 (2026-02-10)#
✨ New features since version 0.2.9#
Multi-object plotting:
plotter.plot()now accepts lists of signals or images, enabling side-by-side visualization of multiple objects in a single callAnalysis result display: Geometry and table results now display as separate HTML tables below the plot instead of cluttering the figure with on-plot text annotations — especially important when working with multiple ROIs
Consistent figure sizing: Introduced
DEFAULT_PLOT_WIDTHconstant for uniform figure dimensions across Plotly and Matplotlib backendsUser-defined figure dimensions: Plotly plots now accept custom
widthandheightkeyword arguments for fine-grained control over figure sizingAdvanced plotting showcase notebook: Added a comprehensive notebook demonstrating advanced features: multiple curve styles, colormaps, ROI-based analysis, geometry/table results, and interactive Plotly visualization
🛠️ Bug Fixes since version 0.2.9#
Fixed legend display in Plotly plots — legends are now hidden by default for cleaner visualization
Fixed default Plotly signal figure dimensions to match Matplotlib’s aspect ratio
Fixed figure serialization performance in Plotly backend
Fixed image rendering edge cases in Matplotlib backend
🔧 Other changes since version 0.2.9#
Updated documentation with structured “Try it Online” section linking to both Quick Start and Advanced Showcase notebooks
Improved portability of development scripts by using relative paths
DataLab-Kernel Version 0.2.9 (2026-02-08)#
✨ New features#
Plotly visualization backend#
Added a new Plotly interactive visualization backend as an alternative to the existing Matplotlib static backend. Plotly figures provide rich interactivity (zoom, pan, hover tooltips) directly in Jupyter notebooks.
Install with
pip install datalab-kernel[plotly].
Smart backend selection#
When both Plotly and Matplotlib are available, Plotly is automatically preferred for its richer interactive experience.
Switch backends at runtime with
plotter.set_backend("matplotlib")orplotter.set_backend("plotly").Override the default backend via the
DATALAB_PLOTTER_BACKENDenvironment variable.
Enhanced Matplotlib backend#
Extracted the Matplotlib rendering logic into a dedicated
matplotlib_backendmodule with improved support for:Error bars
Curve styles (Sticks, Steps)
Per-object line styling from metadata
Log scale and axis bounds
Non-uniform image coordinates (
pcolormesh)Per-object colormaps
Figure height customization#
Enhanced figure height customization for both backends, with updated documentation.
MIME bundle support for Plotly#
Plotly figures now produce proper MIME bundles for native Jupyter display integration.
🔧 Improvements#
Documentation#
Removed references to the legacy XML-RPC connection method; documentation now emphasizes the Web API as the primary (and recommended) connection method.
Updated README with visualization backend documentation, usage examples, and runtime switching instructions.
Updated online demo badge link.
Python version support#
Added Python 3.13 and 3.14 to the supported version classifiers.
Optional dependency#
Added
plotlyoptional dependency group inpyproject.toml(pip install datalab-kernel[plotly]).
Dev tooling#
Enhanced wheel building script (
serve_dev_wheels.py) to support package selection via--packagesargument.New VS Code tasks for interactive plot tests, dev wheel serving, and backend-specific testing.
🛠️ Bug Fixes#
Fixed test compatibility with Python 3.9 by using
ExitStackinstead of multiplemock.patchcontext managers.Fixed test module shadowing issue by using
mock.patch.objectinstead ofmock.patchwith string targets.Fixed various Ruff and Pylint warnings across the codebase.
Fixed test workflow branch references for DataLab installation.
🧪 Test Suite#
Added 65 tests for the Matplotlib backend covering all rendering features, backward-compatibility aliases, and edge cases.
Added 40 tests for the Plotly backend covering all rendering features and edge cases.
Added backend selection and resolution logic tests.
Added
--guiinteractive gallery viewers for visual test validation (tkinter for Matplotlib, tabbed HTML for Plotly).
DataLab-Kernel Versions 0.2.0–0.2.8#
These early development releases established the core architecture of DataLab-Kernel, including:
Workspace API (
add,get,remove,list,save,load)Standalone and Live operating modes with auto-discovery
Matplotlib-based plotting (
Plotterclass)Geometry and table result display
HDF5 persistence for reproducible analysis
%load_ext datalab_kernelextension for JupyterLite compatibilityWeb API-based connection to DataLab (replacing legacy XML-RPC)
Comprehensive test suite foundation