Version 1.3.5¶
(Released: 2025-12-22)
This is a stability and compatibility release focused on NumPy 2.x
support, robust polar error-violin rendering, and cleaner CLI
behavior. It resolves a breaking change introduced by NumPy 2.0
(removal of numpy.trapz) that affected error-violin plotting and
downstream tests.
In addition, this release tightens internal compatibility utilities so plotting functions behave consistently across NumPy versions.
New Features¶
Feature NumPy integration compatibility helper (
kdiagram.compat.numpy.trapz):A new wrapper providing trapezoidal integration across NumPy versions.
Uses
numpy.trapezoidon NumPy 2.0+.Falls back to
numpy.trapzon older NumPy versions.Centralizes numerical-compat logic in one place for maintainability.
Enhancements¶
Enhancement More robust polygon ordering in error violins:
In
plot_error_violins()(mode="optimized"/mode="cbueth"), the “small -> large” ordering used to draw filled polygons now relies on the compat integration helper, ensuring consistent z-ordering and reducing accidental occlusion when overlaying models.
Bug Fixes¶
Fix NumPy 2.0+ crash in error-violin plots:
Fixed
AttributeError: module 'numpy' has no attribute 'trapz'that caused failures in:plot_error_violinsoverlay mode testssplit-spokes tests
CLI plot tests
warning behavior tests for mismatched names
Fix CLI stability for error-violin plotting:
The
plot-error-violinsCLI command now runs reliably under NumPy 2.x by avoiding direct calls to removed NumPy APIs in the plotting backend.
Documentation¶
Docs Release notes updated for NumPy 2.x:
Added guidance that
k-diagramsupports NumPy 2.x and that numerical integration in visual diagnostics is routed throughkdiagram.compat.
Testing & QA¶
Tests NumPy 2.x regression coverage:
Updated and validated the error-violin test suite to ensure overlay and split-spokes behaviors continue to pass under NumPy 2.x environments.
Backwards Compatibility Notes¶
No API breakage intended. This release is a compatibility patch: user-facing plotting signatures are unchanged. If you previously relied on
numpy.trapzindirectly throughk-diagram, that behavior is now provided viakdiagram.compat.numpy.trapz.
Acknowledgments¶
Thanks to the community and CI environments that surfaced NumPy 2.x compatibility regressions early, enabling a targeted fix in this release.