All notable changes to this project will be documented in this file.
- Make version requirement more flexible for
platformdirsdependency, from>=4.4to>=4.
- Fix an issue where telemetry did not have access to files in ~/home directory
- Anonymously track
install_idandinstall_date
- Anonymously track
model_pathandmodel_version.
- Fix an issue because of which telemetry events were not sent.
- Track additional and anonymous runtime properties like local
numpyandpandasversions.
- Fix an issue due to which telemetry was not recorded for TabPFN-TS using the API client
- Telemetry: Surpress any telemetry logs, e.g. when internet connection not available.
- Ping Event: Add frequency to ping events, allowing to send weekly and monthly pings.
- License: Define open source licensing, Apache 2.0.
- Toggle telemeetry: Control telemetry toggle using a remote configuration file.
- Extensions: Allow setting the context for TabPFN extensions.
- Hierarchical Extension Context: Implemented context-aware extension tracking using Python's
contextvars - Extension Decorator: Added
set_extension()decorator for automatic extension context management - Context Preservation: Extension context is preserved across nested function calls without overriding higher-level contexts
- Telemetry Events: Events now automatically include the current extension name when available
- Context Management: Improved extension context handling with proper cleanup and inheritance
- Interactive Prompts: Improved user input validation for telemetry consent prompts
- Input Validation: Now requires explicit "y" or "n" input instead of accepting empty strings
- Retry Logic: Added retry mechanism with up to 3 attempts for invalid input
- User Experience: More specific error messages and clearer input requirements
- Prompt Behavior: Identity prompt now enforces explicit user choice rather than defaulting on empty input
- Error Handling: Enhanced input parsing with customizable retry messages
- Type Safety: Updated type annotations to support optional outcomes for invalid input
- Interactive Telemetry Module: New
telemetry.interactivepackage with optional dependencies - Runtime Detection: Automatic detection of IPython, Jupyter, and TTY environments
- User Prompts: Interactive consent prompts for telemetry opt-in
- State Management: File-based state storage for user preferences
- Model Tracking: Decorators for automatic model call tracking
- Optional Dependencies: Install with
pip install tabpfn_common_utils[telemetry-interactive]for interactive features
- Package Structure: Refactored telemetry into
core/andinteractive/modules - API Separation: Core telemetry always available, interactive features behind
[telemetry-interactive]extra - Import Strategy: Graceful fallback when interactive dependencies are not installed
- Dependency Compatibility: Updated numpy and pandas requirements to be compatible with scipy 1.11.1 and tabpfn ecosystem
- NumPy Version: Downgraded numpy requirement from
>=2,<3to>=1.21.6,<1.28.0for scipy compatibility - Pandas Version: Updated pandas requirement to
>=1.4.0,<3for broader compatibility
- NumPy Compatibility: Updated
scikit-learndependency to matchtabpfnrequirements - Development Dependencies: Added pytest as an explicit dev dependency for consistent testing across environments
- Privacy-First Telemetry System: New GDPR-compliant telemetry system using PostHog for anonymous, aggregated usage data collection
- Telemetry Events: Implemented specific events (
fit_called,dataset,predict_called,PingEvent) for TabPFN usage tracking - ProductTelemetry Class: Singleton service for capturing and pushing events with opt-out via
TABPFN_DISABLE_TELEMETRYenvironment variable - Python 3.13 Support: Added Python 3.13 classifier and CI testing
- Comprehensive Documentation: Complete README overhaul with installation guides, quick start examples, and privacy compliance details
- Package Metadata: Updated
pyproject.tomlwith authors, maintainers, keywords, and extended Python version support - Dependencies: Added
posthog~=6.7as runtime dependency - Type Hints: Enhanced type safety across utility modules with explicit typing imports
- Version Management: Dynamic package version retrieval using
importlib.metadata
- Type Annotations: Corrected return type annotations in
get_example_dataset()function - DataFrame Compatibility: Improved pandas DataFrame column initialization for better type safety
- Code Quality: Enhanced type hinting and removed outdated modules
- load_test.py: Removed outdated module (moved to API repository)
- Outdated Configuration: Cleaned up redundant pyright and ruff configuration sections
- Core utility functions for TabPFN
- Regression prediction result handling
- Data processing and serialization utilities
- Basic project structure and testing framework