You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[0.0.10] - 2026-08-04
Removed
TreeExplainer, LinearExplainer, and KernelExplainer: these were placeholders whose __call__ raised NotImplementedError, and they are gone from fdfi.explainers along with their API pages, user-guide sections, and tests. The three implemented variants (OTExplainer, EOTExplainer, FlowExplainer) are model-agnostic — they wrap any callable f(X) -> y — so tree ensembles, linear models, and arbitrary black boxes are already covered without a model-specific class. Breaking: code that imported these names now raises ImportError instead of failing later at call time.
Fixed
Documentation that described parameters which do not exist: docs/user_guide/statistical_inference.rst told users to call OTExplainer(..., crossfit=True, n_folds=5). Neither parameter exists; both were absorbed by **kwargs, so users got no error and no cross-fitting. Rewritten to use the real Crossfitting wrapper. Three further examples constructed the unexported base Explainer with the internal fit_flow flag.
Math rendering: concepts.rst used doubled backslashes inside :math: roles, so MathJax read \\ as a line break and rendered the UEIF equation as garbled multi-line text; api/explainers.rst used $...$ math, which is a MyST extension and is inert in reStructuredText. choosing_explainer.rst had a section heading with no underline, which filed four hyperparameter subsections under the wrong parent.
SCPI definition in the tutorials: flow_explainer.ipynb defined SCPI as Var_b[f(X̃)], contradicting concepts.rst, the 0.0.9 changelog, and the notebook's own output. Now stated in loss-general form with phi_SCPI = phi_CPI + Var_b as the Sobol connection.
Broken packaging extras: the docs extra could not build the documentation (missing myst-parser, nbsphinx, ipykernel), and all = ["dev", "flow", "docs"] resolved to three unrelated PyPI distributions rather than this project's own extras. docs now also carries xlrd, needed to re-execute the CTG case study.
UEIF is expanded consistently as "uncentered efficient influence function"; the FAQ no longer describes flow-based and entropic OT as the same method.
Changed
Case Study 2 is now a Cardiotocography (CTG) analysis, adapted from examples/ctg_analysis_demo.ipynb and restructured to parallel Case Study 1. It replaces the HIV Flow case study and demonstrates FlowExplainer on 21 collinear continuous features.
All tutorial notebooks re-executed against the current package.
docs/conf.py derives release from fdfi.__version__ rather than a hardcoded literal, and sets html_baseurl for canonical links.
Read the Docs URL added to README.md and pyproject.toml; the previous Documentation URL pointed back at the GitHub repository.