autogluon.timeseries 1.0.1b20240408__py3-none-any.whl → 1.1.0b20240409__py3-none-any.whl

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.

Potentially problematic release.


This version of autogluon.timeseries might be problematic. Click here for more details.

@@ -373,13 +373,14 @@ class AbstractTimeSeriesModel(AbstractModel):
373
373
  val_data: TimeSeriesDataFrame,
374
374
  store_val_score: bool = False,
375
375
  store_predict_time: bool = False,
376
+ **predict_kwargs,
376
377
  ) -> None:
377
378
  """Compute val_score, predict_time and cache out-of-fold (OOF) predictions."""
378
379
  past_data, known_covariates = val_data.get_model_inputs_for_scoring(
379
380
  prediction_length=self.prediction_length, known_covariates_names=self.metadata.known_covariates
380
381
  )
381
382
  predict_start_time = time.time()
382
- oof_predictions = self.predict(past_data, known_covariates=known_covariates)
383
+ oof_predictions = self.predict(past_data, known_covariates=known_covariates, **predict_kwargs)
383
384
  self._oof_predictions = [oof_predictions]
384
385
  if store_predict_time:
385
386
  self.predict_time = time.time() - predict_start_time
@@ -53,42 +53,6 @@ MODEL_ALIASES = {
53
53
  }
54
54
 
55
55
 
56
- class ChronosInferenceDataset:
57
- """A container for time series datasets that implements the ``torch.utils.data.Dataset`` interface"""
58
-
59
- def __init__(
60
- self,
61
- target_df: TimeSeriesDataFrame,
62
- context_length: int,
63
- target_column: str = "target",
64
- ):
65
- assert context_length > 0
66
- self.context_length = context_length
67
- self.target_array = target_df[target_column].to_numpy(dtype=np.float32)
68
- self.freq = target_df.freq
69
-
70
- # store pointer to start:end of each time series
71
- cum_sizes = target_df.num_timesteps_per_item().values.cumsum()
72
- self.indptr = np.append(0, cum_sizes).astype(np.int32)
73
-
74
- def __len__(self):
75
- return len(self.indptr) - 1 # noqa
76
-
77
- def _get_context(self, a: np.ndarray, pad_value=np.nan):
78
- a = a[-self.context_length :]
79
- pad_size = self.context_length - len(a)
80
- if pad_size > 0:
81
- pad = np.full(shape=(pad_size,), fill_value=pad_value)
82
- a = np.concatenate((pad, a))
83
- return a
84
-
85
- def __getitem__(self, idx) -> np.ndarray:
86
- start_idx = self.indptr[idx]
87
- end_idx = self.indptr[idx + 1]
88
-
89
- return self._get_context(self.target_array[start_idx:end_idx])
90
-
91
-
92
56
  class ChronosModel(AbstractTimeSeriesModel):
93
57
  """Chronos pretrained time series forecasting models, based on the original
94
58
  `ChronosModel <https://github.com/amazon-science/chronos-forecasting>`_ implementation.
@@ -196,6 +160,7 @@ class ChronosModel(AbstractTimeSeriesModel):
196
160
  )
197
161
 
198
162
  self.model_pipeline: Optional[Any] = None # of type OptimizedChronosPipeline
163
+ self.time_limit: Optional[float] = None
199
164
 
200
165
  def save(self, path: str = None, verbose: bool = True) -> str:
201
166
  pipeline = self.model_pipeline
@@ -288,14 +253,16 @@ class ChronosModel(AbstractTimeSeriesModel):
288
253
  **kwargs,
289
254
  ) -> None:
290
255
  self._check_fit_params()
256
+ self.time_limit = time_limit
291
257
 
292
258
  def _get_inference_data_loader(
293
259
  self,
294
260
  data: TimeSeriesDataFrame,
295
261
  context_length: int,
296
262
  num_workers: int = 0,
263
+ time_limit: Optional[float] = None,
297
264
  ):
298
- import torch
265
+ from .utils import ChronosInferenceDataLoader, ChronosInferenceDataset, timeout_callback
299
266
 
300
267
  chronos_dataset = ChronosInferenceDataset(
301
268
  target_df=data,
@@ -303,11 +270,12 @@ class ChronosModel(AbstractTimeSeriesModel):
303
270
  context_length=context_length,
304
271
  )
305
272
 
306
- return torch.utils.data.DataLoader(
273
+ return ChronosInferenceDataLoader(
307
274
  chronos_dataset,
308
275
  batch_size=self.batch_size,
309
276
  shuffle=False,
310
277
  num_workers=num_workers,
278
+ on_batch=timeout_callback(seconds=time_limit),
311
279
  )
312
280
 
313
281
  def _predict(
@@ -333,6 +301,12 @@ class ChronosModel(AbstractTimeSeriesModel):
333
301
  # load model pipeline to device memory
334
302
  self.load_model_pipeline(context_length=context_length)
335
303
 
304
+ inference_data_loader = self._get_inference_data_loader(
305
+ data=data,
306
+ num_workers=self.data_loader_num_workers,
307
+ context_length=context_length,
308
+ time_limit=kwargs.get("time_limit"),
309
+ )
336
310
  self.model_pipeline.model.eval()
337
311
  with torch.inference_mode():
338
312
  prediction_samples = [
@@ -345,11 +319,7 @@ class ChronosModel(AbstractTimeSeriesModel):
345
319
  .detach()
346
320
  .cpu()
347
321
  .numpy()
348
- for batch in self._get_inference_data_loader(
349
- data=data,
350
- num_workers=self.data_loader_num_workers,
351
- context_length=context_length,
352
- )
322
+ for batch in inference_data_loader
353
323
  ]
354
324
 
355
325
  samples = np.concatenate(prediction_samples, axis=0).swapaxes(1, 2).reshape(-1, self.num_samples)
@@ -367,3 +337,16 @@ class ChronosModel(AbstractTimeSeriesModel):
367
337
 
368
338
  def _more_tags(self) -> Dict:
369
339
  return {"allow_nan": True}
340
+
341
+ def score_and_cache_oof(
342
+ self,
343
+ val_data: TimeSeriesDataFrame,
344
+ store_val_score: bool = False,
345
+ store_predict_time: bool = False,
346
+ **predict_kwargs,
347
+ ) -> None:
348
+ # All computation happens during inference, so we provide the time_limit at prediction time
349
+ # TODO: Once custom predict_kwargs is allowed, make sure that `time_limit` is not among the keys
350
+ super().score_and_cache_oof(
351
+ val_data, store_val_score, store_predict_time, time_limit=self.time_limit, **predict_kwargs
352
+ )
@@ -0,0 +1,66 @@
1
+ import time
2
+ from typing import Callable, Optional
3
+
4
+ import numpy as np
5
+ import torch
6
+
7
+ from autogluon.core.utils.exceptions import TimeLimitExceeded
8
+ from autogluon.timeseries.dataset.ts_dataframe import TimeSeriesDataFrame
9
+
10
+
11
+ class ChronosInferenceDataset:
12
+ """A container for time series datasets that implements the ``torch.utils.data.Dataset`` interface"""
13
+
14
+ def __init__(
15
+ self,
16
+ target_df: TimeSeriesDataFrame,
17
+ context_length: int,
18
+ target_column: str = "target",
19
+ ):
20
+ assert context_length > 0
21
+ self.context_length = context_length
22
+ self.target_array = target_df[target_column].to_numpy(dtype=np.float32)
23
+ self.freq = target_df.freq
24
+
25
+ # store pointer to start:end of each time series
26
+ cum_sizes = target_df.num_timesteps_per_item().values.cumsum()
27
+ self.indptr = np.append(0, cum_sizes).astype(np.int32)
28
+
29
+ def __len__(self):
30
+ return len(self.indptr) - 1 # noqa
31
+
32
+ def _get_context(self, a: np.ndarray, pad_value=np.nan):
33
+ a = a[-self.context_length :]
34
+ pad_size = self.context_length - len(a)
35
+ if pad_size > 0:
36
+ pad = np.full(shape=(pad_size,), fill_value=pad_value)
37
+ a = np.concatenate((pad, a))
38
+ return a
39
+
40
+ def __getitem__(self, idx) -> np.ndarray:
41
+ start_idx = self.indptr[idx]
42
+ end_idx = self.indptr[idx + 1]
43
+
44
+ return self._get_context(self.target_array[start_idx:end_idx])
45
+
46
+
47
+ class ChronosInferenceDataLoader(torch.utils.data.DataLoader):
48
+ def __init__(self, *args, **kwargs):
49
+ self.callback: Callable = kwargs.pop("on_batch", lambda: None)
50
+ super().__init__(*args, **kwargs)
51
+
52
+ def __iter__(self):
53
+ for item in super().__iter__():
54
+ yield item
55
+ self.callback()
56
+
57
+
58
+ def timeout_callback(seconds: Optional[float]) -> Callable:
59
+ """Return a callback object that raises an exception if time limit is exceeded."""
60
+ start_time = time.time()
61
+
62
+ def callback() -> None:
63
+ if seconds is not None and time.time() - start_time > seconds:
64
+ raise TimeLimitExceeded
65
+
66
+ return callback
@@ -144,9 +144,10 @@ class AbstractLocalModel(AbstractTimeSeriesModel):
144
144
 
145
145
  # timeout ensures that no individual job takes longer than time_limit
146
146
  # TODO: a job started late may still exceed time_limit - how to prevent that?
147
- timeout = None if self.n_jobs == 1 else self.time_limit
147
+ time_limit = kwargs.get("time_limit")
148
+ timeout = None if self.n_jobs == 1 else time_limit
148
149
  # end_time ensures that no new jobs are started after time_limit is exceeded
149
- end_time = None if self.time_limit is None else time.time() + self.time_limit
150
+ end_time = None if time_limit is None else time.time() + time_limit
150
151
  executor = Parallel(self.n_jobs, timeout=timeout)
151
152
 
152
153
  try:
@@ -169,11 +170,16 @@ class AbstractLocalModel(AbstractTimeSeriesModel):
169
170
  return TimeSeriesDataFrame(predictions_df)
170
171
 
171
172
  def score_and_cache_oof(
172
- self, val_data: TimeSeriesDataFrame, store_val_score: bool = False, store_predict_time: bool = False
173
+ self,
174
+ val_data: TimeSeriesDataFrame,
175
+ store_val_score: bool = False,
176
+ store_predict_time: bool = False,
177
+ **predict_kwargs,
173
178
  ) -> None:
174
- super().score_and_cache_oof(val_data, store_val_score, store_predict_time)
175
- # Remove time_limit for future predictions
176
- self.time_limit = None
179
+ # All computation happens during inference, so we provide the time_limit at prediction time
180
+ super().score_and_cache_oof(
181
+ val_data, store_val_score, store_predict_time, time_limit=self.time_limit, **predict_kwargs
182
+ )
177
183
 
178
184
  def _predict_wrapper(self, time_series: pd.Series, end_time: Optional[float] = None) -> Tuple[pd.DataFrame, bool]:
179
185
  if end_time is not None and time.time() >= end_time:
@@ -189,6 +189,7 @@ class MultiWindowBacktestingModel(AbstractTimeSeriesModel):
189
189
  val_data: TimeSeriesDataFrame,
190
190
  store_val_score: bool = False,
191
191
  store_predict_time: bool = False,
192
+ **predict_kwargs,
192
193
  ) -> None:
193
194
  # self.val_score, self.predict_time, self._oof_predictions already saved during _fit()
194
195
  assert self._oof_predictions is not None
@@ -1,3 +1,3 @@
1
1
  """This is the autogluon version file."""
2
- __version__ = '1.0.1b20240408'
2
+ __version__ = '1.1.0b20240409'
3
3
  __lite__ = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.0.1b20240408
3
+ Version: 1.1.0b20240409
4
4
  Summary: AutoML for Image, Text, and Tabular Data
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -52,18 +52,16 @@ Requires-Dist: utilsforecast <0.0.11,>=0.0.10
52
52
  Requires-Dist: tqdm <5,>=4.38
53
53
  Requires-Dist: orjson ~=3.9
54
54
  Requires-Dist: tensorboard <3,>=2.9
55
- Requires-Dist: autogluon.core[raytune] ==1.0.1b20240408
56
- Requires-Dist: autogluon.common ==1.0.1b20240408
57
- Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost] ==1.0.1b20240408
55
+ Requires-Dist: autogluon.core[raytune] ==1.1.0b20240409
56
+ Requires-Dist: autogluon.common ==1.1.0b20240409
57
+ Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost] ==1.1.0b20240409
58
58
  Provides-Extra: all
59
- Requires-Dist: optimum[onnxruntime] <1.19,>=1.18 ; extra == 'all'
60
- Requires-Dist: optimum-intel[nncf,openvino] <1.17,>=1.16 ; extra == 'all'
61
- Requires-Dist: optimum[nncf,openvino] <1.19,>=1.18 ; extra == 'all'
59
+ Requires-Dist: optimum[onnxruntime] <1.19,>=1.17 ; extra == 'all'
62
60
  Provides-Extra: chronos-onnx
63
- Requires-Dist: optimum[onnxruntime] <1.19,>=1.18 ; extra == 'chronos-onnx'
61
+ Requires-Dist: optimum[onnxruntime] <1.19,>=1.17 ; extra == 'chronos-onnx'
64
62
  Provides-Extra: chronos-openvino
65
- Requires-Dist: optimum-intel[nncf,openvino] <1.17,>=1.16 ; extra == 'chronos-openvino'
66
- Requires-Dist: optimum[nncf,openvino] <1.19,>=1.18 ; extra == 'chronos-openvino'
63
+ Requires-Dist: optimum-intel[nncf,openvino] <1.17,>=1.15 ; extra == 'chronos-openvino'
64
+ Requires-Dist: optimum[nncf,openvino] <1.19,>=1.17 ; extra == 'chronos-openvino'
67
65
  Provides-Extra: tests
68
66
  Requires-Dist: pytest ; extra == 'tests'
69
67
  Requires-Dist: ruff >=0.0.285 ; extra == 'tests'
@@ -1,10 +1,10 @@
1
- autogluon.timeseries-1.0.1b20240408-py3.8-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
1
+ autogluon.timeseries-1.1.0b20240409-py3.8-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
2
2
  autogluon/timeseries/__init__.py,sha256=_CrLLc1fkjen7UzWoO0Os8WZoHOgvZbHKy46I8v_4k4,304
3
3
  autogluon/timeseries/evaluator.py,sha256=l642tYfTHsl8WVIq_vV6qhgAFVFr9UuZD7gLra3A_Kc,250
4
4
  autogluon/timeseries/learner.py,sha256=fPIV2p0BMWcZr5fwOkNsJrk8RxK-IYUH_VON3_YXKOQ,13750
5
5
  autogluon/timeseries/predictor.py,sha256=A-YkJGKrYGXGlmtIHd9CDMmudBSKcBdnOCJK4oGsQr8,81222
6
6
  autogluon/timeseries/splitter.py,sha256=eghGwAAN2_cxGk5aJBILgjGWtLzjxJcytMy49gg_q18,3061
7
- autogluon/timeseries/version.py,sha256=jZBmrJPoADjz7yFzFD1IlaguMPsaJC2NcUT56_rbwBY,90
7
+ autogluon/timeseries/version.py,sha256=ACrO9T3KI3r4-b2HTTFpVrIdjO5Xc59N9PjfRI0dV7Y,90
8
8
  autogluon/timeseries/configs/__init__.py,sha256=BTtHIPCYeGjqgOcvqb8qPD4VNX-ICKOg6wnkew1cPOE,98
9
9
  autogluon/timeseries/configs/presets_configs.py,sha256=ZVV8BsnGnnHPgjBtJBqF-H35MYUdzRBQ8FP7zA3_11g,1949
10
10
  autogluon/timeseries/dataset/__init__.py,sha256=UvnhAN5tjgxXTHoZMQDy64YMDj4Xxa68yY7NP4vAw0o,81
@@ -17,14 +17,15 @@ autogluon/timeseries/metrics/utils.py,sha256=eJ63TCR-UwbeJ1c2Qm7B2q-8B3sFthPgioo
17
17
  autogluon/timeseries/models/__init__.py,sha256=HFjDOYKQWaGlgQWiLlOvfwE2dH0uDmeKJFC8GDL987c,1271
18
18
  autogluon/timeseries/models/presets.py,sha256=p36ROcuOnixgGsI1zBdr9VM-MH2pKCiJCS2Ofb4xT8o,11243
19
19
  autogluon/timeseries/models/abstract/__init__.py,sha256=wvDsQAZIV0N3AwBeMaGItoQ82trEfnT-nol2AAOIxBg,102
20
- autogluon/timeseries/models/abstract/abstract_timeseries_model.py,sha256=aUXlX1ozc5XghinR5ahGIX94MkhBmmYvgmqmMib5BhU,23391
20
+ autogluon/timeseries/models/abstract/abstract_timeseries_model.py,sha256=q5yVFyFJPaMVtW48tr2Pw-hgedM5upvc-93qjN4Li68,23435
21
21
  autogluon/timeseries/models/abstract/model_trial.py,sha256=ENPg_7nsdxIvaNM0o0UShZ3x8jFlRmwRc5m0fGPC0TM,3720
22
22
  autogluon/timeseries/models/autogluon_tabular/__init__.py,sha256=r9i6jWcyeLHYClkcMSKRVsfrkBUMxpDrTATNTBc_qgQ,136
23
23
  autogluon/timeseries/models/autogluon_tabular/mlforecast.py,sha256=9gNuCWf8vVfVPiXppwG5l_3mLbZZ6i5pHKTM-rSk5Ww,30977
24
24
  autogluon/timeseries/models/autogluon_tabular/utils.py,sha256=4-gTrBtizxeMVQlsuscugPqw9unaXWXhS1TVVssfzYY,2125
25
25
  autogluon/timeseries/models/chronos/__init__.py,sha256=wT77HzTtmQxW3sw2k0mA5Ot6PSHivX-Uvn5fjM05EU4,60
26
- autogluon/timeseries/models/chronos/model.py,sha256=8mZBsjZGP6Q1IGneTiSkcSFvkI6eVBFwweT0t6YUzNk,14974
26
+ autogluon/timeseries/models/chronos/model.py,sha256=wG4tlTwpFiADu-KQ3TYg-hz7hGz1vPBU__DzyQrikdI,14643
27
27
  autogluon/timeseries/models/chronos/pipeline.py,sha256=caR4tx-MZnrPeiU_Rra566-OP_SpodtOgcU7P0Hw0Vc,20784
28
+ autogluon/timeseries/models/chronos/utils.py,sha256=dl7pytUFmosFVfBcBAGA0JqMJp4cTQ3DmM9Mdjap9no,2124
28
29
  autogluon/timeseries/models/ensemble/__init__.py,sha256=kFr11Gmt7lQJu9Rr8HuIPphQN5l1TsoorfbJm_O3a_s,128
29
30
  autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py,sha256=tifETwmiEGt-YtQ9eNK7ojJ3fBvtFMUJvisbfkIJ7gw,3393
30
31
  autogluon/timeseries/models/ensemble/greedy_ensemble.py,sha256=5HvZuW5osgsZg3V69k82nKEOy_YgeH1JTfQa7F3cU7s,7220
@@ -33,12 +34,12 @@ autogluon/timeseries/models/gluonts/abstract_gluonts.py,sha256=X1l_MexAoyBNMGiJr
33
34
  autogluon/timeseries/models/gluonts/torch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
35
  autogluon/timeseries/models/gluonts/torch/models.py,sha256=PVDns7CnZtJTbPiCw-FJxahKrDjC-wj0VkwIGsodYY0,19930
35
36
  autogluon/timeseries/models/local/__init__.py,sha256=JyckWWgMG1BTIWJqFTW6e1O-eb0LPPOwtXwmb1ErohQ,756
36
- autogluon/timeseries/models/local/abstract_local_model.py,sha256=lota8MNpfgYC1PftM7sKcjx2gVCVq3K_D_dovBGqksg,11692
37
+ autogluon/timeseries/models/local/abstract_local_model.py,sha256=pbuS8G1xUisOSMaKrsfxRdmTsZTBvFjldSTn6inyr_Q,11860
37
38
  autogluon/timeseries/models/local/naive.py,sha256=iwRcFMFmJKPWPbD9TWaIUS51oav69F_VAp6-jb_5SUE,7249
38
39
  autogluon/timeseries/models/local/npts.py,sha256=Bp74doKnfpGE8ywP4FWOCI_RwRMsmgocYDfGtq764DA,4143
39
40
  autogluon/timeseries/models/local/statsforecast.py,sha256=oDYKKM2LZXEQLhPLEgZZWhvSEC1iE1wBexpl8P-Cxwc,32991
40
41
  autogluon/timeseries/models/multi_window/__init__.py,sha256=Bq7AT2Jxdd4WNqmjTdzeqgNiwn1NCyWp4tBIWaM-zfI,60
41
- autogluon/timeseries/models/multi_window/multi_window_model.py,sha256=Thge05cLytJoOpShE7g1MuNa-qlZWUrSvaO0aCbKQbA,11348
42
+ autogluon/timeseries/models/multi_window/multi_window_model.py,sha256=HiujLv8MJ31fWxRM5iXG2PzobFn4Mus0nJPu0MP2Rw4,11374
42
43
  autogluon/timeseries/trainer/__init__.py,sha256=lxiOT-Gc6BEnr_yWQqra85kEngeM_wtH2SCaRbmC_qE,170
43
44
  autogluon/timeseries/trainer/abstract_trainer.py,sha256=2nPLskmbOGRzkj6ttX0tHVkj9h2Y72MHaZy7L78MBZQ,59100
44
45
  autogluon/timeseries/trainer/auto_trainer.py,sha256=psJFZBwWWPlLjNwAgvO4OUJXsRW1sTN2YS9a4pdoeoE,3344
@@ -51,11 +52,11 @@ autogluon/timeseries/utils/datetime/base.py,sha256=MsqIHY14m3QMjSwwtE7Uo1oNwepWU
51
52
  autogluon/timeseries/utils/datetime/lags.py,sha256=kcU4liKbHj7KP2ajNU-KLZ8OYSU35EgT4kJjZNSw0Zg,5875
52
53
  autogluon/timeseries/utils/datetime/seasonality.py,sha256=kgK_ukw2wCviEB7CZXRVC5HZpBJZu9IsRrvCJ9E_rOE,755
53
54
  autogluon/timeseries/utils/datetime/time_features.py,sha256=pROkYyxETQ8rHKfPGhf2paB73C7rWJ2Ui0cCswLqbBg,2562
54
- autogluon.timeseries-1.0.1b20240408.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
55
- autogluon.timeseries-1.0.1b20240408.dist-info/METADATA,sha256=6bvEjMigJQz6jN2Ecj2VU9rc-mZC2WNNVlMSFLKxrBk,12685
56
- autogluon.timeseries-1.0.1b20240408.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
57
- autogluon.timeseries-1.0.1b20240408.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
58
- autogluon.timeseries-1.0.1b20240408.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
59
- autogluon.timeseries-1.0.1b20240408.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
60
- autogluon.timeseries-1.0.1b20240408.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
61
- autogluon.timeseries-1.0.1b20240408.dist-info/RECORD,,
55
+ autogluon.timeseries-1.1.0b20240409.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
56
+ autogluon.timeseries-1.1.0b20240409.dist-info/METADATA,sha256=9so2n3jb0bCI51fpMa01ZCBlBKYr1TTBof2SEaS7XN8,12543
57
+ autogluon.timeseries-1.1.0b20240409.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
58
+ autogluon.timeseries-1.1.0b20240409.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
59
+ autogluon.timeseries-1.1.0b20240409.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
60
+ autogluon.timeseries-1.1.0b20240409.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
61
+ autogluon.timeseries-1.1.0b20240409.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
62
+ autogluon.timeseries-1.1.0b20240409.dist-info/RECORD,,