Release 0.4.0#285
Conversation
- Bump pyproject version 0.3.0 -> 0.4.0. - Fill in CHANGELOG.md [0.4.0] - 2026-05-11 covering everything that landed since 0.3.0: KV-cache wiring (#283, #284), many-class alphabet auto-inference (#282), AutoTabPFN / TunedTabPFN deprecations, rf_pfn / sklearn_ensembles / shap removals, and the graceful fallbacks for older tabpfn / tabpfn-client. tabpfn pin stays at >=7.0.0 — KV-cache features require TabPFN-3 to engage, but the new fallbacks emit a UserWarning and degrade cleanly on earlier releases. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request updates the project to version 0.4.0, introducing KV-cache support, new utility helpers, and significant cleanup through the removal of legacy packages and deprecated classifiers. Review feedback identifies several critical issues where the implementation does not match the changelog descriptions: the detection logic for the tabpfn-client backend is likely incorrect, the promised probe fit fallback for ManyClassClassifier is missing from the code, and the fallback behavior for tabpfn_crt is inaccurately documented regarding its support for the client backend.
- src/tabpfn_extensions/utils.py: fix warn_if_no_kv_cache client detection. ClientTabPFNClassifier/Regressor are defined inside tabpfn_extensions.utils (subclassing the client base), so the immediate class' __module__ is "tabpfn_extensions.utils" and the previous "tabpfn_client" string check always missed. Walk type(model).__mro__ instead so the base class modules get checked too. - CHANGELOG.md: correct the many_class entry to reflect what the merged code actually does (uses get_inference_config() with a hardcoded 10 fallback for older tabpfn; no probe fit was kept in #282). - CHANGELOG.md: correct the pval_crt fallback entry. pval_crt is local-only by design (ImportError at import time without the local tabpfn) and its fallback catches ValueError / NotImplementedError but not TypeError, because the client can't reach that code path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Bumps
tabpfn-extensionsto 0.4.0 and fills in the changelog.What's in this release
Everything that's landed on
mainsincev0.3.0(2026-04-24):ManyClassClassifierauto-infersalphabet_sizefrom the base estimator's checkpoint (v2.5/v2.6 → 10, v3 → 160). No more explicitalphabet_size=needed.shapruntime dep. Shapiq-based path is now the only one.get_tabpfn_imputation_explainerdefaults toimputer="baseline"and engages the KV cache. Both interpretability examples rewritten around California housing.rf_pfn,sklearn_ensembles,interpretability/experiments.py(dead code); deprecateAutoTabPFN*andTunedTabPFN*; wire the KV cache (improved with TabPFN-3) intopval_crt, PDP, and the matching examples; add a sharedwarn_if_no_kv_cachehelper; README cleanup.See
CHANGELOG.mdfor the full structured list.Why now
The KV-cache and many-class checkpoint inference work want a release so users can
pip install tabpfn-extensionsand get them; meanwhile the deprecations should get into PyPI ahead of the eventual hard removal.What this release does not do
tabpfnpin. Stays attabpfn>=7.0.0. KV-cache features need TabPFN-3 to actually engage; on earliertabpfnthey emit aUserWarningand degrade cleanly (pval_crtfalls back, PDP example falls back, shapiq path warns but still runs).tabpfn >= 7.xsincetabpfn.configwas removed upstream — pre-existing latent bug, tracked separately as RES-1541.After merge
git tag v0.4.0 <merge-commit> && git push origin v0.4.0uv run --group dev python -m build && uv run --group dev twine upload dist/*— no automated release workflow in this repo).Cross-repo follow-ups (separate, not blocking)
docs.priorlabs.ai: drop the RF-PFN page; banner post-hoc-ensembles + HPO as deprecated; update many-class wording (default max-class moved from 10 → 160 on v3).🤖 Generated with Claude Code