- Python:
>=3.10 - Core install:
numpy+pandas - Optional extras:
ml,xgb,lgbm,catboost,stats,torch,transformers - Integration extras:
sktime,darts,gluonts - Default expectation: CPU-only workflows must remain usable without any heavy optional backend installed
ForeSight exposes many internal modules and experimental model families, but the compatibility promise is anchored to a smaller stable public surface:
- the root
foresightPython API exported throughforesight.__all__ - model registry metadata and discovery fields surfaced by
foresight models list/info - the documented core CLI workflows, especially
doctor,models,forecast,eval,leaderboard, andartifact - the persisted forecaster artifact schema contract documented in
docs/artifacts.md
Everything else should be treated as implementation detail unless it is explicitly documented as a stable entry point. Beta and experimental model families remain supported for use, but not with the same compatibility promise as the stable public surface.
The one intentional exception is the named foresight.adapters module:
adapter bridges are supported as beta integration adapters, but they are not
promoted into the stable root-package export surface.
The project should only claim support where the repository actually runs checks:
| surface | matrix | expectation |
|---|---|---|
| Core package + public contract suite | Python 3.10, 3.11 |
Supported and checked in CI |
| Release build / publish path | Python 3.10 |
Supported and checked before publishing |
Optional stats extra smoke |
Python 3.10 |
Checked in CI |
Optional ml extra smoke |
Python 3.10 |
Checked in CI |
| Torch / transformers / frontier wrappers | best-effort | Availability is communicated through stability levels, not the core compatibility guarantee |
Use the smallest install that matches your workflow:
pip install foresight-ts
pip install "foresight-ts[stats]"
pip install "foresight-ts[ml]"
pip install "foresight-ts[torch]"
pip install "foresight-ts[all]"- Choose core when you only need classical models, CLI dataset utilities, and basic backtesting.
- Choose
statsfor ARIMA / ETS / SARIMAX-style workflows. - Choose
mlfor sklearn-style lag models. - Choose
torchfor neural local/global/multivariate models. - Choose
sktimewhen you want the sktime adapter bridge on top of local point forecasters. - Choose
dartswhen you want the Darts data adapter bridge. - Choose
gluontswhen you want the GluonTS data adapter bridge. - Choose
allonly when you need the full mixed stack.
ForeSight surfaces a model stability level in foresight models list and foresight models info:
stable: default public workflows that are expected to remain import-stable and documentation-backed.beta: broader torch-based local/global model families that are supported but still evolving.experimental: frontier / wrapper / paper-zoo style models that may change faster than the core API.
Stable docs and examples should prefer the stable surface first, then opt into
beta or experimental intentionally.
Serialized forecaster artifacts are part of the supported platform surface:
- schema version
1is the current artifact payload contract - legacy payloads without an explicit schema version are still loaded as version
0 - releases that change artifact payload structure must update
src/foresight/serialization.py, keep serialization tests green, and document whether re-saving artifacts is required after upgrade - forward compatibility with unknown future schema versions is intentionally not promised
Use foresight doctor to inspect the current runtime before filing an issue or debugging an install:
foresight doctor
foresight --data-dir /path/to/root doctor
foresight doctor --format text
foresight --data-dir /path/to/root doctor --format text --strict
foresight doctor --require-extra torch --strictThe report includes:
- installed package version and module path
- Python executable and version
- optional dependency status and detected extras
- packaged dataset resolution previews
--data-dirandFORESIGHT_DATA_DIRinputs- text output for human triage and JSON for machine-readable automation
- strict mode that returns exit code
1when warnings are present - required-extra checks that promote missing requested extras to errors
When a workflow needs external datasets, ForeSight resolves paths in this order:
--data-dirFORESIGHT_DATA_DIR- packaged demo datasets under
foresight/data/resources/ - repo-root fallback when running from source
Use foresight doctor and foresight datasets path <key> to confirm which location is being used.