- LLM-based forecasting (#155):
TimeLLMForecaster(patch → cross-attention with prototypes → decode) andLLMPSForecaster(multi-scale CNN pattern extraction → decode). 15 tests. PR #200. - Agentic forecasting (#156):
TimeSeriesScientistmulti-agent pipeline with Curator, Planner, Forecaster, and Reporter agents. 87 tests with TDD edge-case coverage. PR #188, #197. - KASBA Rust port (#189): Port of KASBA clustering algorithm into
src/kasba/— MSM distance, elastic k-means++ init, triangle inequality fast assignment, stochastic barycenter averaging, empty cluster recovery. 16 Rust unit tests. PR #198, #199. - Contrastive clustering (#154): Self-supervised contrastive learning with NT-Xent loss. PR #187.
- Deep clustering (#157): DEC/IDEC autoencoder-based deep clustering. PR #187.
- Foundation model forecasting (#151):
ChronosForecaster,TimesFMForecaster,MoiraiForecasterfor zero-shot forecasting. PR #186. - Native DL forecasters (#150):
NBEATSForecasterandPatchTSTForecasterwith fit/predict API. PR #186. - Deep classifiers (#152):
RocketClassifier,InceptionTimeClassifier,ResNetClassifier. PR #186. - Causal inference (#153):
CausalImpact(Bayesian structural counterfactual) andSyntheticControlwith placebo tests. PR #183. - Covariates support (#149): Past, future, and static exogenous variables in
ForecastPipeline. PR #181. - Backtesting framework (#167): Unified fit → predict → score across rolling windows. PR #184.
- Bayesian methods (9 modules): Kalman Filter (#141), BSTS (#142), UKF/EnKF (#143), Bayesian ETS (#169), Bayesian VAR (#170), MCMC wrapper (#174), GP regression (#175), Bayesian anomaly scoring (#176), Particle Filter (#180).
- Registry-based
__init__.pyfor lazy imports (#144). - Shared lazy-import helper for submodules (#145, PR #172).
- Notebook normalization pre-commit hook (#146, PR #172).
- Consolidated test fixtures (#147, PR #173).
- Notebooks 11 (imaging), 12 (advanced features), 13 (agentic forecasting).
- Add HDBSCAN/DBSCAN density-based clustering with precomputed distance matrices (#106).
- Add agglomerative/hierarchical clustering with dendrograms (#107).
- Add k-means with DBA (DTW Barycentric Averaging) clustering (#108).
- Add CLARA/CLARANS scalable k-medoids variants (#109).
- Add ROCKET/MiniRocket feature extraction for clustering (#111).
- Add U-Shapelet clustering for time series (#112).
- Add Chronos/MOMENT embedding adapters for clustering (#113).
- Add spectral clustering with SBD kernel (K-Spectral Centroid) (#125).
- Add
auto_clusterautomated clustering pipeline selection (#126).
- Bump
rand0.8.5 → 0.8.6 to resolve GHSA-cq8v-f236-94qc (#124). - Upgrade
rustls-webpki0.103.12 → 0.103.13 for GHSA-82j2-j2ch-gfr8 (#110). - Add
scipytoclusteringoptional dependency (required by spectral clustering). - Add
pytest.importorskipguards for tests requiringscipy/sklearn. - Fix mypy type errors in
auto_clustermodule.
- Replace 7 API-demo notebooks with 10 theme-based tutorials (#89).
- Add polars-ts logo image for README banner (#88).
- Add SCUM ensemble model tests (#90).
- Add ARIMA/SARIMA forecasting with explicit
(p,d,q)order control viastatsmodels.SARIMAX(arima_fit,arima_forecast). - Add automatic ARIMA order selection via
statsforecast.AutoARIMA(auto_arima). - Both ARIMA backends raise helpful
ImportErrorwhen optional dependencies are missing.
- Accelerate exponential smoothing (SES, Holt, Holt-Winters) with Rust implementation (#86).
- Accelerate k-medoids PAM clustering with Rust implementation (#84).
- CI: replace
pre-commitwith prek (Rust reimplementation) for faster code-quality checks. - CI: add ty type checker as non-blocking informational job alongside mypy.
- Add
[tool.ty]configuration section inpyproject.toml. - Document
prekandtylocal developer workflows in README.
- Expand coverage for HF adapter, clustering, calibration, and adapters (#85).
- Expand coverage for changepoint, clustering, adapters, and standalone modules (#83).
- Add 8 ARIMA tests (5 statsmodels, 3 statsforecast-gated).
- Add KShape time series clustering using shape-based distance with centroid computation.
- Add KShape time series classifier.
- Add k-Medoids (PAM) time series clustering (
kmedoids) using any of the 12 distance metrics. - Add k-Nearest Neighbors time series classification (
knn_classify) using any of the 12 distance metrics. - Add SBD (Shape-Based Distance) metric (
compute_pairwise_sbd). - Add Frechet distance metric (
compute_pairwise_frechet). - Add EDR (Edit Distance on Real Sequences) metric (
compute_pairwise_edr).
- Add shared distance dispatch utility (
_distance_dispatch) for reuse across clustering and classification. - Upgrade Rust dependencies: pyo3 0.25, polars crate 0.49.1.
- Add
py.typedmarker for PEP 561 type hint distribution. - Add lazy import system for optional dependencies (
forecast,decomposition). - CI: add coverage reporting, MkDocs deployment workflow, polars compatibility matrix (1.30–1.33).
- Add 85 tests for k-NN classification covering correctness, custom columns, and multiple metrics.
- Add 84 tests for k-Medoids clustering covering output, correctness, edge cases, and multiple metrics.
- Add 90 tests for KShape clustering.
- Add 85 tests for KShape classifier.
- Add tests for SBD, Frechet, EDR distance metrics.
- Add unified API tests for all 12 distance metrics.
- Add 52 lazy import tests for optional dependency handling.
- Add Sen's slope estimator (
sens_slope) — robust median-of-pairwise-slopes trend magnitude. - Add CUSUM changepoint detection (
cusum) — cumulative sum control chart for mean shift detection. - Add anomaly flagging to decomposition methods via
anomaly_thresholdparameter. - Add ERP (Edit Distance with Real Penalty) distance metric (
compute_pairwise_erp). - Add LCSS (Longest Common Subsequence) distance metric (
compute_pairwise_lcss). - Add TWE (Time Warp Edit Distance) distance metric (
compute_pairwise_twe). - Add FastDTW approximate algorithm (
method="fast",param=radius). - Add Sakoe-Chiba band constraint (
method="sakoe_chiba",param=window_size). - Add Itakura parallelogram constraint (
method="itakura",param=max_slope). compute_pairwise_dtwnow accepts optionalmethodandparamarguments (backward compatible).
- Add unified
compute_pairwise_distance(method=...)API — single entry point for all 9 distance metrics. - Deduplicate Rust distance code into shared
utils.rs(grouping, hashing, parallel pairwise). - Optimize all distance metrics to O(m) memory with two-row DP.
- Add
#[pyo3(signature)]annotations for Rust safety with pyo3 0.24+. - Add
pyarrowas core dependency for reliable Arrow interchange. - Lightweight core: optional dependencies (
forecast,decomposition) are lazy-loaded. - CI: add minimal-deps job, polars compatibility matrix, clippy, and code-quality checks.
- Upgrade Rust dependencies (pyo3 0.24, pyo3-polars 0.21, polars crate 0.48).
- Pin Python polars to
>=1.30.0,<2.0.0for ABI compatibility. - Fix trailing space in
freqsdocstring causing mkdocs strict build failure.
- Add 286 tests covering all distance metrics, decomposition, trend, changepoint, and edge cases.
- Add input validation, edge case, and parallelism stress tests for distance metrics.
- Implement Seasonal Decomposition.
- Implement Fourier Decomposition.
- Implement Naive Dynamic Time Warping.
- Implement Mann-Kendall's Trend Statistic.
- Make library usable on PyPI with the Rust expressions.
- Implement Kaboudan metric.
- Add automatic references to docstrings.
- Access docs under https://drumtorben.github.io/polars-ts/.
- Initialize Repo.