autogluon.timeseries 1.2.1b20250402__tar.gz → 1.2.1b20250403__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/PKG-INFO +1 -1
  2. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/trainer.py +26 -17
  3. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/version.py +1 -1
  4. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/PKG-INFO +1 -1
  5. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/requires.txt +3 -3
  6. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/setup.cfg +0 -0
  7. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/setup.py +0 -0
  8. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/__init__.py +0 -0
  9. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/configs/__init__.py +0 -0
  10. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/configs/presets_configs.py +0 -0
  11. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/dataset/__init__.py +0 -0
  12. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
  13. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/evaluator.py +0 -0
  14. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/learner.py +0 -0
  15. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/metrics/__init__.py +0 -0
  16. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/metrics/abstract.py +0 -0
  17. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/metrics/point.py +0 -0
  18. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/metrics/quantile.py +0 -0
  19. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/metrics/utils.py +0 -0
  20. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/__init__.py +0 -0
  21. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
  22. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
  23. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
  24. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/abstract/tunable.py +0 -0
  25. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
  26. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +0 -0
  27. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/autogluon_tabular/transforms.py +0 -0
  28. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
  29. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/__init__.py +0 -0
  30. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/model.py +0 -0
  31. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/pipeline/__init__.py +0 -0
  32. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/pipeline/base.py +0 -0
  33. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/pipeline/chronos.py +0 -0
  34. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/pipeline/chronos_bolt.py +0 -0
  35. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/chronos/pipeline/utils.py +0 -0
  36. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
  37. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -0
  38. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -0
  39. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
  40. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -0
  41. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
  42. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/gluonts/torch/models.py +0 -0
  43. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/local/__init__.py +0 -0
  44. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/local/abstract_local_model.py +0 -0
  45. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/local/naive.py +0 -0
  46. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/local/npts.py +0 -0
  47. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
  48. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
  49. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
  50. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/models/presets.py +0 -0
  51. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/predictor.py +0 -0
  52. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/regressor.py +0 -0
  53. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/splitter.py +0 -0
  54. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/transforms/__init__.py +0 -0
  55. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/transforms/covariate_scaler.py +0 -0
  56. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/transforms/target_scaler.py +0 -0
  57. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/__init__.py +0 -0
  58. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
  59. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
  60. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
  61. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
  62. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
  63. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/features.py +0 -0
  64. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/forecast.py +0 -0
  65. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
  66. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
  67. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
  68. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
  69. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
  70. {autogluon.timeseries-1.2.1b20250402 → autogluon.timeseries-1.2.1b20250403}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.2.1b20250402
3
+ Version: 1.2.1b20250403
4
4
  Summary: Fast and Accurate ML in 3 Lines of Code
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -53,6 +53,7 @@ class TimeSeriesTrainer(AbstractTrainer[AbstractTimeSeriesModel]):
53
53
  verbosity: int = 2,
54
54
  val_splitter: Optional[AbstractWindowSplitter] = None,
55
55
  refit_every_n_windows: Optional[int] = 1,
56
+ # TODO: Set cache_predictions=False by default once all models in default presets have a reasonable inference speed
56
57
  cache_predictions: bool = True,
57
58
  ensemble_model_type: Optional[Type] = None,
58
59
  **kwargs,
@@ -752,6 +753,8 @@ class TimeSeriesTrainer(AbstractTrainer[AbstractTimeSeriesModel]):
752
753
  if isinstance(model, AbstractTimeSeriesModel):
753
754
  return model.name
754
755
  else:
756
+ if model not in self.get_model_names():
757
+ raise KeyError(f"Model '{model}' not found. Available models: {self.get_model_names()}")
755
758
  return model
756
759
 
757
760
  def predict(
@@ -1033,7 +1036,6 @@ class TimeSeriesTrainer(AbstractTrainer[AbstractTimeSeriesModel]):
1033
1036
  use_cache
1034
1037
  If False, will ignore the cache even if it's available.
1035
1038
  """
1036
- # TODO: Unify design of the method with Tabular
1037
1039
  if self.cache_predictions and use_cache:
1038
1040
  dataset_hash = self._compute_dataset_hash(data=data, known_covariates=known_covariates)
1039
1041
  model_pred_dict, pred_time_dict_marginal = self._get_cached_pred_dicts(dataset_hash)
@@ -1105,21 +1107,33 @@ class TimeSeriesTrainer(AbstractTrainer[AbstractTimeSeriesModel]):
1105
1107
  combined_hash = hash_pandas_df(data) + hash_pandas_df(known_covariates) + hash_pandas_df(data.static_features)
1106
1108
  return combined_hash
1107
1109
 
1110
+ def _load_cached_predictions(self) -> dict[str, dict[str, dict[str, Any]]]:
1111
+ """Load cached predictions from disk. If loading fails, an empty dictionary is returned."""
1112
+ if self._cached_predictions_path.exists():
1113
+ try:
1114
+ cached_predictions = load_pkl.load(str(self._cached_predictions_path))
1115
+ except Exception:
1116
+ cached_predictions = {}
1117
+ else:
1118
+ cached_predictions = {}
1119
+ return cached_predictions
1120
+
1108
1121
  def _get_cached_pred_dicts(
1109
1122
  self, dataset_hash: str
1110
1123
  ) -> Tuple[Dict[str, Optional[TimeSeriesDataFrame]], Dict[str, float]]:
1111
- """Load cached predictions for given dataset_hash from disk, if possible. Otherwise returns empty dicts."""
1112
- if self._cached_predictions_path.exists():
1113
- cached_predictions = load_pkl.load(str(self._cached_predictions_path))
1114
- if dataset_hash in cached_predictions:
1124
+ """Load cached predictions for given dataset_hash from disk, if possible.
1125
+
1126
+ If loading fails for any reason, empty dicts are returned.
1127
+ """
1128
+ cached_predictions = self._load_cached_predictions()
1129
+ if dataset_hash in cached_predictions:
1130
+ try:
1115
1131
  model_pred_dict = cached_predictions[dataset_hash]["model_pred_dict"]
1116
1132
  pred_time_dict = cached_predictions[dataset_hash]["pred_time_dict"]
1117
- if model_pred_dict.keys() == pred_time_dict.keys():
1118
- logger.debug(f"Loaded cached predictions for models {list(model_pred_dict.keys())}")
1119
- return model_pred_dict, pred_time_dict
1120
- else:
1121
- logger.warning(f"Found corrupted cached predictions in {self._cached_predictions_path}")
1122
- logger.debug("Found no cached predictions")
1133
+ assert model_pred_dict.keys() == pred_time_dict.keys()
1134
+ return model_pred_dict, pred_time_dict
1135
+ except Exception:
1136
+ logger.warning("Cached predictions are corrupted. Predictions will be made from scratch.")
1123
1137
  return {}, {}
1124
1138
 
1125
1139
  def _save_cached_pred_dicts(
@@ -1128,12 +1142,7 @@ class TimeSeriesTrainer(AbstractTrainer[AbstractTimeSeriesModel]):
1128
1142
  model_pred_dict: Dict[str, Optional[TimeSeriesDataFrame]],
1129
1143
  pred_time_dict: Dict[str, float],
1130
1144
  ) -> None:
1131
- # TODO: Save separate file for each dataset if _cached_predictions file grows large?
1132
- if self._cached_predictions_path.exists():
1133
- logger.debug("Extending existing cached predictions")
1134
- cached_predictions = load_pkl.load(str(self._cached_predictions_path))
1135
- else:
1136
- cached_predictions = {}
1145
+ cached_predictions = self._load_cached_predictions()
1137
1146
  # Do not save results for models that failed
1138
1147
  cached_predictions[dataset_hash] = {
1139
1148
  "model_pred_dict": {k: v for k, v in model_pred_dict.items() if v is not None},
@@ -1,4 +1,4 @@
1
1
  """This is the autogluon version file."""
2
2
 
3
- __version__ = "1.2.1b20250402"
3
+ __version__ = "1.2.1b20250403"
4
4
  __lite__ = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.2.1b20250402
3
+ Version: 1.2.1b20250403
4
4
  Summary: Fast and Accurate ML in 3 Lines of Code
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -17,9 +17,9 @@ fugue>=0.9.0
17
17
  tqdm<5,>=4.38
18
18
  orjson~=3.9
19
19
  tensorboard<3,>=2.9
20
- autogluon.core[raytune]==1.2.1b20250402
21
- autogluon.common==1.2.1b20250402
22
- autogluon.tabular[catboost,lightgbm,xgboost]==1.2.1b20250402
20
+ autogluon.core[raytune]==1.2.1b20250403
21
+ autogluon.common==1.2.1b20250403
22
+ autogluon.tabular[catboost,lightgbm,xgboost]==1.2.1b20250403
23
23
 
24
24
  [all]
25
25