Skip to content

v0.5.2: dash v3 and plotly v6 compatibility + dtreeviz fixes

Choose a tag to compare

@oegedijk oegedijk released this 25 Jan 16:23
· 8 commits to master since this release
81d2216

Version 0.5.2:

Breaking Changes

  • Dropped support for Python 3.8 and 3.9 (Python 3.9 reached end-of-life). Minimum Python version is now 3.10
  • Now explicitly supports and tests on Python 3.10, 3.11, 3.12, and 3.13

Improvements

  • Removed upper version constraints for dash and plotly dependencies, now supports Dash 2.10+ and 3.0+, and Plotly 5.0+ and 6.0+
  • Added backward compatibility code to support both Dash 2.x (app.run_server()) and Dash 3.x (app.run()) APIs
  • Fixed Plotly 6.0 compatibility by updating titlefont to title.font format
  • Improved integration test setup with automatic ChromeDriver management via webdriver-manager
  • Fixed threading issues with Plotly validator initialization by switching to recommended plotly.graph_objects import
  • Made torch and skorch optional dependencies on Intel Macs (where torch wheels are not available)

Bug Fixes

  • Fixed SystemExit warnings in integration tests caused by Plotly validator initialization in multi-threaded contexts
  • Updated .gitignore to exclude webdriver-manager cache directories and uv.lock file
  • XGBoost 3.1+ compatibility: Fixed handling of string-formatted predictions and base_score values returned by XGBoost 3.1+. Added robust string-to-numeric conversion with proper regex fallback to handle various string formats (e.g., '[3.2967056E1]', '[8.563135E-2,7.169811E-1,1.9738752E-1]')
  • XGBoost SHAP initialization: Fixed base_score conversion in both get_params() and booster's internal JSON configuration to ensure SHAP TreeExplainer initializes correctly with XGBoost 3.1+
  • RandomForest dtreeviz compatibility: Fixed dtype handling for y_train (now uses int instead of int16) and observation array conversion for predict_path() to work with newer dtreeviz versions
  • Dtreeviz decisiontree_view: Ensure observations are passed as numpy arrays to avoid pandas label lookup errors when dtreeviz indexes features by integer position
  • PyPI packaging: Removed duplicate wheel entries from hatchling build config to fix "Duplicate filename in local headers" upload errors
  • Pandas deprecation warnings: Removed deprecated pd.option_context("future.no_silent_downcasting") and copy=False parameter from .infer_objects() calls
  • Runtime warnings: Fixed divide-by-zero warnings in classification plots and residuals plots (log-ratio calculations) by adding proper zero checks and using np.divide() with where parameter