Repository navigation
Highlights
- Asynchronous jobs (
client.jobs) — long-running work can now run server-side without blocking.jobs.forecast(),jobs.cross_validation(),jobs.finetune(),jobs.detect_anomalies(),jobs.simulate(),jobs.explain()andjobs.execute_step()each return aJobhandle with.wait(),.statusand.cancel(), mirroring the blocking method of the same name — note thatjobs.detect_anomalies()mirrorsdetect_anomalies_online(), i.e. it runs online detection.Job,JobStatus,JobError,JobTimeoutError,JobCancelledErrorandApiErrorare exported from the package root (#847, #879, #883, #887). simulate()— draws temporally correlated sample paths per series, in long format with asample_idcolumn.multivariate=Truekeeps paths coherent across series (#852).explain()— model-independent feature importance weights, via"granger"or"transfer_entropy". These describe predictive relationships, not causal ones (#852).list_models()— returns the model names your API key may use. Needs theGET /v2/modelsroute, which is not deployed yet; until it ships the call raisesApiErrorwith status 404 (#881).nixtla.snowflakehelpers — a package for driving the Snowflake TimeGPT integration from Python, exposingdetect_anomalies,load_actualsandto_anomalies_df(#870).- Start datetime information — requests now carry start-datetime metadata for each series (#859).
- Breaking:
detect_anomalies_online()gainedfinetuned_model_idandmodel_parametersmid-signature, to match the parameter order offorecast()andcross_validation(). Callers passing arguments positionally pastfinetune_lossmust switch to keywords (#883). - Deprecation ahead of 1.0: the anomaly-detection methods are being renamed and
detect_anomalies()changes meaning. Batchdetect_anomalies()is removed in 1.0 with no drop-in replacement;detect_anomalies_online()takes over the name, unchanged in behavior. The Snowflake anomaly path (nixtla.snowflake.detect_anomalies(),NIXTLA_DETECT_ANOMALIESand its UDTF) makes the same move, sohanddetection_sizebecome requiredPARAMSentries. Every affected entry point now emits aFutureWarning(#896). - Cross-validation correctness fix — actual values returned in the cross-validation output were incorrect and are now right; re-verify any evaluation metrics computed with
v0.8.0(#866).
New Features
- [FEAT] Add async forecast, cross validation & finetune method by senbong (@gee-senbong) in #847
- [FEAT] Start datetime information by Jing Qiang Goh (@JQGoh) in #859
- [FEAT] Add execute_step support to NixtlaClient by senbong (@gee-senbong) in #864
- [FEAT] Snowflake demo helpers and collateral + unpin claude by Nikhil Gupta (@ngupta23) in #870
- [FEAT] Add
submit_anomaly_detection_jobfor asynchronous anomaly detection by senbong (@gee-senbong) in #879 - [FEAT] Add
list_modelsto list the models available to an API key by senbong (@gee-senbong) in #881
Breaking Change
- [FEAT] Simulate and explain by Olivier Sprangers (@elephaint) in #852
- [FEAT] Unify async job handling; add submit_simulate_job and submit_explain_job by senbong (@gee-senbong) in #883
Bug Fixes
- [FIX] Incorrect actual values in cross-validation output by Mariana Menchero García (@MMenchero) in #866
- [FIX] Snowflake finetune procedure fails to deploy on invalid default argument by senbong (@gee-senbong) in #867
- [FIX] Snowflake imports and version bump by Nikhil Gupta (@ngupta23) in #882
Documentations/Web
- [WEB] API reference language dropdown styles by Rodrigo Salmerón (@rslmrn) in #846
- [DOC] Sync OpenAPI for nixtla-engine v0.3.1 by Jing Qiang Goh (@JQGoh) in #853
- [DOC] Redirect four stale slugs that 404 on nixtla.io/docs by Eduardo López (@loama) in #855
- [DOC] Fix language errors and canonical host by Eduardo López (@loama) in #856
- [DOC] Canonicalize documentation host by Eduardo López (@loama) in #857
- [WEB] Consolidate repeated style.css rules into shared CSS recipes by Rodrigo Salmerón (@rslmrn) in #858
- [DOC] Sync OpenAPI for nixtla-engine v0.4.0 by Jing Qiang Goh (@JQGoh) in #869
- [DOC] Sync OpenAPI for nixtla-engine v0.4.1 by Jing Qiang Goh (@JQGoh) in #873
- [DOC] Sync OpenAPI for nixtla-engine v0.4.2 by Jing Qiang Goh (@JQGoh) in #880
- [DOC] Sync OpenAPI for nixtla-engine v0.4.3 by Jing Qiang Goh (@JQGoh) in #885
- [DOC] Revise TimeGPT section to TimeGPT-2.1 by Wolfr (@Wolfr) in #889
- [DOC] Add an asynchronous jobs guide by senbong (@gee-senbong) in #897
Dependencies
- [CHORE] Bump the ci-dependencies group with 2 updates by Dependabot (@dependabot)[bot] in #848
- [CHORE] Fix Dependabot alerts #126 (ray RCE) and #120 (setuptools sdist bypass) by senbong (@gee-senbong) in #851
- [CHORE] Fix Dependabot alerts #127-#130 (aiohttp, cryptography) by senbong (@gee-senbong) in #854
- [CHORE] Bump snowflake-connector-python from 4.6.0 to 4.7.1 by Dependabot (@dependabot)[bot] in #874
- [CHORE] Bump tornado dependency by Jing Qiang Goh (@JQGoh) in #875
Improvements
- [REFACTOR] Move async jobs into a client.jobs namespace and a nixtla/jobs package by senbong (@gee-senbong) in #887
- [REFACTOR] Extract _types.py and _audit.py; run live-API tests on one CI cell by senbong (@gee-senbong) in #892
- [REFACTOR] Split _preprocessing.py and _payloads.py out of nixtla_client.py by senbong (@gee-senbong) in #898
- [CHORE] Revised settings for tests by Jing Qiang Goh (@JQGoh) in #890
- [CHORE] Revised settings for models-performance job by Jing Qiang Goh (@JQGoh) in #891
- [CHORE] Trim the unreleased surface and smoke-test every CI cell for the release by senbong (@gee-senbong) in #893
- [CHORE] Warn about the 1.0 anomaly-detection rename by senbong (@gee-senbong) in #896
- [PRE-RELEASE] v0.9.0.dev0 of Nixtla client by senbong (@gee-senbong) in #868
- [PRE-RELEASE] v0.9.0.dev1 of Nixtla client by senbong (@gee-senbong) in #871
- [PRE-RELEASE] v0.9.0.dev2 of Nixtla client by senbong (@gee-senbong) in #894
- [RELEASE] Release v0.9.0 of Nixtla client by senbong (@gee-senbong) in #901
Full Changelog: v0.8.0...v0.9.0