Repository navigation
v0.9.0
This release drops support for Python 3.8 and 3.9 (both end-of-life) and updates dependencies for modern Python versions.
SHAP 0.45 Compatibility
- Adapted codebase to breaking changes in SHAP 0.45 for multi-output models, updating code and tests accordingly.
- Updated the SHAP MLP explainer to use
ProcessPoolExecutorfor parallel SHAP value computation. - Removed
SHAP_Analyzertests, as SHAP'scheck_additivitynow handles validation internally. - Made no-inplace operations explicit for SHAP compatibility.
- Note: scripts in
epiclass/utils/shapmay still rely on the old SHAP output shape and need review. - Python 3.13 support temporarily removed due to compatibility issues.
New Install Script
- Added
install.pyas a flexible alternative topip install .for local development. - Auto-detects CPU/GPU and installs the appropriate PyTorch variant.
- Uses
uvif available, falls back topip. - Supports optional extras,
--freezeto save installed packages, and--torch-versionto specify a PyTorch version. - Exits if not in a virtual environment.
Test Improvements
- Tests now run in parallel via
just test-all, with each Python version in a separate background process. - Made tests robust to parallel execution by using temporary directories for mock data, resolving HDF5 read/write conflicts.
- Enabled
pytest -kfor filtering tests. - Improved test log naming for easier navigation.
- Skipped non-crucial confusion matrix creation tests.
Dependency & Build Changes
- Removed legacy per-version requirement files in favor of
req_core.inwith version specifiers. - Separated Compute Canada Python indexes into a dedicated file to avoid
uv pip installfailures. - Added
uvvirtual environment setup script. - Updated requirements for modern SHAP, pandas, and PyTorch compatibility.
Cleanup
- Removed the deprecated TensorFlow module.
- Fixed
get_cmapdeprecation warning. - Clarified README.