autogluon.timeseries 1.3.2b20250625__py3-none-any.whl → 1.3.2b20250627__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.
@@ -16,7 +16,7 @@ from transformers import TrainerCallback
16
16
  from autogluon.common.loaders.load_s3 import download, list_bucket_prefix_suffix_contains_s3
17
17
  from autogluon.core.utils.exceptions import TimeLimitExceeded
18
18
  from autogluon.timeseries.dataset.ts_dataframe import TimeSeriesDataFrame
19
- from autogluon.timeseries.models.gluonts.abstract_gluonts import SimpleGluonTSDataset
19
+ from autogluon.timeseries.models.gluonts.dataset import SimpleGluonTSDataset
20
20
 
21
21
  if TYPE_CHECKING:
22
22
  # TODO: fix the underlying reason for this circular import, the pipeline should handle tokenization
@@ -1,4 +1,4 @@
1
- from .torch.models import (
1
+ from .models import (
2
2
  DeepARModel,
3
3
  DLinearModel,
4
4
  PatchTSTModel,
@@ -3,7 +3,7 @@ import os
3
3
  import shutil
4
4
  from datetime import timedelta
5
5
  from pathlib import Path
6
- from typing import TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Optional, Type, Union, cast, overload
6
+ from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Type, Union, cast, overload
7
7
 
8
8
  import gluonts
9
9
  import gluonts.core.settings
@@ -11,7 +11,6 @@ import numpy as np
11
11
  import pandas as pd
12
12
  from gluonts.core.component import from_hyperparameters
13
13
  from gluonts.dataset.common import Dataset as GluonTSDataset
14
- from gluonts.dataset.field_names import FieldName
15
14
  from gluonts.env import env as gluonts_env
16
15
  from gluonts.model.estimator import Estimator as GluonTSEstimator
17
16
  from gluonts.model.forecast import Forecast, QuantileForecast, SampleForecast
@@ -22,14 +21,15 @@ from autogluon.core.hpo.constants import RAY_BACKEND
22
21
  from autogluon.tabular.models.tabular_nn.utils.categorical_encoders import (
23
22
  OneHotMergeRaresHandleUnknownEncoder as OneHotEncoder,
24
23
  )
25
- from autogluon.timeseries.dataset.ts_dataframe import ITEMID, TIMESTAMP, TimeSeriesDataFrame
24
+ from autogluon.timeseries.dataset.ts_dataframe import ITEMID, TimeSeriesDataFrame
26
25
  from autogluon.timeseries.models.abstract import AbstractTimeSeriesModel
27
- from autogluon.timeseries.utils.datetime import norm_freq_str
28
26
  from autogluon.timeseries.utils.warning_filters import disable_root_logger, warning_filter
29
27
 
30
28
  if TYPE_CHECKING:
31
29
  from gluonts.torch.model.forecast import DistributionForecast
32
30
 
31
+ from .dataset import SimpleGluonTSDataset
32
+
33
33
  # NOTE: We avoid imports for torch and lightning.pytorch at the top level and hide them inside class methods.
34
34
  # This is done to skip these imports during multiprocessing (which may cause bugs)
35
35
 
@@ -37,106 +37,6 @@ logger = logging.getLogger(__name__)
37
37
  gts_logger = logging.getLogger(gluonts.__name__)
38
38
 
39
39
 
40
- class SimpleGluonTSDataset(GluonTSDataset):
41
- """Wrapper for TimeSeriesDataFrame that is compatible with the GluonTS Dataset API."""
42
-
43
- def __init__(
44
- self,
45
- target_df: TimeSeriesDataFrame,
46
- freq: str,
47
- target_column: str = "target",
48
- feat_static_cat: Optional[np.ndarray] = None,
49
- feat_static_real: Optional[np.ndarray] = None,
50
- feat_dynamic_cat: Optional[np.ndarray] = None,
51
- feat_dynamic_real: Optional[np.ndarray] = None,
52
- past_feat_dynamic_cat: Optional[np.ndarray] = None,
53
- past_feat_dynamic_real: Optional[np.ndarray] = None,
54
- includes_future: bool = False,
55
- prediction_length: Optional[int] = None,
56
- ):
57
- assert target_df is not None
58
- # Convert TimeSeriesDataFrame to pd.Series for faster processing
59
- self.target_array = target_df[target_column].to_numpy(np.float32)
60
- self.feat_static_cat = self._astype(feat_static_cat, dtype=np.int64)
61
- self.feat_static_real = self._astype(feat_static_real, dtype=np.float32)
62
- self.feat_dynamic_cat = self._astype(feat_dynamic_cat, dtype=np.int64)
63
- self.feat_dynamic_real = self._astype(feat_dynamic_real, dtype=np.float32)
64
- self.past_feat_dynamic_cat = self._astype(past_feat_dynamic_cat, dtype=np.int64)
65
- self.past_feat_dynamic_real = self._astype(past_feat_dynamic_real, dtype=np.float32)
66
- self.freq = self._get_freq_for_period(freq)
67
-
68
- # Necessary to compute indptr for known_covariates at prediction time
69
- self.includes_future = includes_future
70
- self.prediction_length = prediction_length
71
-
72
- # Replace inefficient groupby ITEMID with indptr that stores start:end of each time series
73
- self.item_ids = target_df.item_ids
74
- self.indptr = target_df.get_indptr()
75
- self.start_timestamps = target_df.index[self.indptr[:-1]].to_frame(index=False)[TIMESTAMP]
76
- assert len(self.item_ids) == len(self.start_timestamps)
77
-
78
- @staticmethod
79
- def _astype(array: Optional[np.ndarray], dtype: Type[np.generic]) -> Optional[np.ndarray]:
80
- if array is None:
81
- return None
82
- else:
83
- return array.astype(dtype)
84
-
85
- @staticmethod
86
- def _get_freq_for_period(freq: str) -> str:
87
- """Convert freq to format compatible with pd.Period.
88
-
89
- For example, ME freq must be converted to M when creating a pd.Period.
90
- """
91
- offset = pd.tseries.frequencies.to_offset(freq)
92
- assert offset is not None
93
- freq_name = norm_freq_str(offset)
94
- if freq_name == "SME":
95
- # Replace unsupported frequency "SME" with "2W"
96
- return "2W"
97
- elif freq_name == "bh":
98
- # Replace unsupported frequency "bh" with dummy value "Y"
99
- return "Y"
100
- else:
101
- freq_name_for_period = {"YE": "Y", "QE": "Q", "ME": "M"}.get(freq_name, freq_name)
102
- return f"{offset.n}{freq_name_for_period}"
103
-
104
- def __len__(self):
105
- return len(self.indptr) - 1 # noqa
106
-
107
- def __iter__(self) -> Iterator[Dict[str, Any]]:
108
- for j in range(len(self.indptr) - 1):
109
- start_idx = self.indptr[j]
110
- end_idx = self.indptr[j + 1]
111
- # GluonTS expects item_id to be a string
112
- ts = {
113
- FieldName.ITEM_ID: str(self.item_ids[j]),
114
- FieldName.START: pd.Period(self.start_timestamps.iloc[j], freq=self.freq),
115
- FieldName.TARGET: self.target_array[start_idx:end_idx],
116
- }
117
- if self.feat_static_cat is not None:
118
- ts[FieldName.FEAT_STATIC_CAT] = self.feat_static_cat[j]
119
- if self.feat_static_real is not None:
120
- ts[FieldName.FEAT_STATIC_REAL] = self.feat_static_real[j]
121
- if self.past_feat_dynamic_cat is not None:
122
- ts[FieldName.PAST_FEAT_DYNAMIC_CAT] = self.past_feat_dynamic_cat[start_idx:end_idx].T
123
- if self.past_feat_dynamic_real is not None:
124
- ts[FieldName.PAST_FEAT_DYNAMIC_REAL] = self.past_feat_dynamic_real[start_idx:end_idx].T
125
-
126
- # Dynamic features that may extend into the future
127
- if self.includes_future:
128
- assert self.prediction_length is not None, (
129
- "Prediction length must be provided if includes_future is True"
130
- )
131
- start_idx = start_idx + j * self.prediction_length
132
- end_idx = end_idx + (j + 1) * self.prediction_length
133
- if self.feat_dynamic_cat is not None:
134
- ts[FieldName.FEAT_DYNAMIC_CAT] = self.feat_dynamic_cat[start_idx:end_idx].T
135
- if self.feat_dynamic_real is not None:
136
- ts[FieldName.FEAT_DYNAMIC_REAL] = self.feat_dynamic_real[start_idx:end_idx].T
137
- yield ts
138
-
139
-
140
40
  class AbstractGluonTSModel(AbstractTimeSeriesModel):
141
41
  """Abstract class wrapping GluonTS estimators for use in autogluon.timeseries.
142
42
 
@@ -0,0 +1,109 @@
1
+ from typing import Any, Dict, Iterator, Optional, Type
2
+
3
+ import numpy as np
4
+ import pandas as pd
5
+ from gluonts.dataset.common import Dataset as GluonTSDataset
6
+ from gluonts.dataset.field_names import FieldName
7
+
8
+ from autogluon.timeseries.dataset.ts_dataframe import TIMESTAMP, TimeSeriesDataFrame
9
+ from autogluon.timeseries.utils.datetime import norm_freq_str
10
+
11
+
12
+ class SimpleGluonTSDataset(GluonTSDataset):
13
+ """Wrapper for TimeSeriesDataFrame that is compatible with the GluonTS Dataset API."""
14
+
15
+ def __init__(
16
+ self,
17
+ target_df: TimeSeriesDataFrame,
18
+ freq: str,
19
+ target_column: str = "target",
20
+ feat_static_cat: Optional[np.ndarray] = None,
21
+ feat_static_real: Optional[np.ndarray] = None,
22
+ feat_dynamic_cat: Optional[np.ndarray] = None,
23
+ feat_dynamic_real: Optional[np.ndarray] = None,
24
+ past_feat_dynamic_cat: Optional[np.ndarray] = None,
25
+ past_feat_dynamic_real: Optional[np.ndarray] = None,
26
+ includes_future: bool = False,
27
+ prediction_length: Optional[int] = None,
28
+ ):
29
+ assert target_df is not None
30
+ # Convert TimeSeriesDataFrame to pd.Series for faster processing
31
+ self.target_array = target_df[target_column].to_numpy(np.float32)
32
+ self.feat_static_cat = self._astype(feat_static_cat, dtype=np.int64)
33
+ self.feat_static_real = self._astype(feat_static_real, dtype=np.float32)
34
+ self.feat_dynamic_cat = self._astype(feat_dynamic_cat, dtype=np.int64)
35
+ self.feat_dynamic_real = self._astype(feat_dynamic_real, dtype=np.float32)
36
+ self.past_feat_dynamic_cat = self._astype(past_feat_dynamic_cat, dtype=np.int64)
37
+ self.past_feat_dynamic_real = self._astype(past_feat_dynamic_real, dtype=np.float32)
38
+ self.freq = self._get_freq_for_period(freq)
39
+
40
+ # Necessary to compute indptr for known_covariates at prediction time
41
+ self.includes_future = includes_future
42
+ self.prediction_length = prediction_length
43
+
44
+ # Replace inefficient groupby ITEMID with indptr that stores start:end of each time series
45
+ self.item_ids = target_df.item_ids
46
+ self.indptr = target_df.get_indptr()
47
+ self.start_timestamps = target_df.index[self.indptr[:-1]].to_frame(index=False)[TIMESTAMP]
48
+ assert len(self.item_ids) == len(self.start_timestamps)
49
+
50
+ @staticmethod
51
+ def _astype(array: Optional[np.ndarray], dtype: Type[np.generic]) -> Optional[np.ndarray]:
52
+ if array is None:
53
+ return None
54
+ else:
55
+ return array.astype(dtype)
56
+
57
+ @staticmethod
58
+ def _get_freq_for_period(freq: str) -> str:
59
+ """Convert freq to format compatible with pd.Period.
60
+
61
+ For example, ME freq must be converted to M when creating a pd.Period.
62
+ """
63
+ offset = pd.tseries.frequencies.to_offset(freq)
64
+ assert offset is not None
65
+ freq_name = norm_freq_str(offset)
66
+ if freq_name == "SME":
67
+ # Replace unsupported frequency "SME" with "2W"
68
+ return "2W"
69
+ elif freq_name == "bh":
70
+ # Replace unsupported frequency "bh" with dummy value "Y"
71
+ return "Y"
72
+ else:
73
+ freq_name_for_period = {"YE": "Y", "QE": "Q", "ME": "M"}.get(freq_name, freq_name)
74
+ return f"{offset.n}{freq_name_for_period}"
75
+
76
+ def __len__(self):
77
+ return len(self.indptr) - 1 # noqa
78
+
79
+ def __iter__(self) -> Iterator[Dict[str, Any]]:
80
+ for j in range(len(self.indptr) - 1):
81
+ start_idx = self.indptr[j]
82
+ end_idx = self.indptr[j + 1]
83
+ # GluonTS expects item_id to be a string
84
+ ts = {
85
+ FieldName.ITEM_ID: str(self.item_ids[j]),
86
+ FieldName.START: pd.Period(self.start_timestamps.iloc[j], freq=self.freq),
87
+ FieldName.TARGET: self.target_array[start_idx:end_idx],
88
+ }
89
+ if self.feat_static_cat is not None:
90
+ ts[FieldName.FEAT_STATIC_CAT] = self.feat_static_cat[j]
91
+ if self.feat_static_real is not None:
92
+ ts[FieldName.FEAT_STATIC_REAL] = self.feat_static_real[j]
93
+ if self.past_feat_dynamic_cat is not None:
94
+ ts[FieldName.PAST_FEAT_DYNAMIC_CAT] = self.past_feat_dynamic_cat[start_idx:end_idx].T
95
+ if self.past_feat_dynamic_real is not None:
96
+ ts[FieldName.PAST_FEAT_DYNAMIC_REAL] = self.past_feat_dynamic_real[start_idx:end_idx].T
97
+
98
+ # Dynamic features that may extend into the future
99
+ if self.includes_future:
100
+ assert self.prediction_length is not None, (
101
+ "Prediction length must be provided if includes_future is True"
102
+ )
103
+ start_idx = start_idx + j * self.prediction_length
104
+ end_idx = end_idx + (j + 1) * self.prediction_length
105
+ if self.feat_dynamic_cat is not None:
106
+ ts[FieldName.FEAT_DYNAMIC_CAT] = self.feat_dynamic_cat[start_idx:end_idx].T
107
+ if self.feat_dynamic_real is not None:
108
+ ts[FieldName.FEAT_DYNAMIC_REAL] = self.feat_dynamic_real[start_idx:end_idx].T
109
+ yield ts
@@ -7,13 +7,14 @@ from typing import Any, Dict, Type
7
7
 
8
8
  from gluonts.model.estimator import Estimator as GluonTSEstimator
9
9
 
10
- from autogluon.timeseries.models.gluonts.abstract_gluonts import AbstractGluonTSModel
11
10
  from autogluon.timeseries.utils.datetime import (
12
11
  get_lags_for_frequency,
13
12
  get_seasonality,
14
13
  get_time_features_for_frequency,
15
14
  )
16
15
 
16
+ from .abstract import AbstractGluonTSModel
17
+
17
18
  # NOTE: We avoid imports for torch and lightning.pytorch at the top level and hide them inside class methods.
18
19
  # This is done to skip these imports during multiprocessing (which may cause bugs)
19
20
 
@@ -1,4 +1,4 @@
1
1
  """This is the autogluon version file."""
2
2
 
3
- __version__ = "1.3.2b20250625"
3
+ __version__ = "1.3.2b20250627"
4
4
  __lite__ = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.3.2b20250625
3
+ Version: 1.3.2b20250627
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
@@ -55,10 +55,10 @@ Requires-Dist: fugue>=0.9.0
55
55
  Requires-Dist: tqdm<5,>=4.38
56
56
  Requires-Dist: orjson~=3.9
57
57
  Requires-Dist: tensorboard<3,>=2.9
58
- Requires-Dist: autogluon.core[raytune]==1.3.2b20250625
59
- Requires-Dist: autogluon.common==1.3.2b20250625
60
- Requires-Dist: autogluon.features==1.3.2b20250625
61
- Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost]==1.3.2b20250625
58
+ Requires-Dist: autogluon.core[raytune]==1.3.2b20250627
59
+ Requires-Dist: autogluon.common==1.3.2b20250627
60
+ Requires-Dist: autogluon.features==1.3.2b20250627
61
+ Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost]==1.3.2b20250627
62
62
  Provides-Extra: all
63
63
  Provides-Extra: chronos-onnx
64
64
  Requires-Dist: optimum[onnxruntime]<1.23,>=1.17; extra == "chronos-onnx"
@@ -1,4 +1,4 @@
1
- autogluon.timeseries-1.3.2b20250625-py3.9-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
1
+ autogluon.timeseries-1.3.2b20250627-py3.9-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=pIn4YSOk0aqCWyBpIlwnAsFnG4h7PLXk8guFH3wFS-w,13923
@@ -6,7 +6,7 @@ autogluon/timeseries/predictor.py,sha256=u4d7-xMs669g5xxqIYuvEyGQ0P6Y8IoToiyg9zU
6
6
  autogluon/timeseries/regressor.py,sha256=ozlhO-wce6YEtSMj0bfMgfNVeblfU3rI6ITuIk_WAFo,11868
7
7
  autogluon/timeseries/splitter.py,sha256=yzPca9p2bWV-_VJAptUyyzQsxu-uixAdpMoGQtDzMD4,3205
8
8
  autogluon/timeseries/trainer.py,sha256=4T7y58P3RImDbRZn-Og2qSQtOLpEocwdHi_tl1yt0Sc,58021
9
- autogluon/timeseries/version.py,sha256=DDz6ZOzsA3FxARUjxCymDQnnmx13nbzyfMZvMdJfNvQ,91
9
+ autogluon/timeseries/version.py,sha256=A6aLhqOSdPQrZGUF2nKnLYx3gfNe_ZAKABrhZOhfgIE,91
10
10
  autogluon/timeseries/configs/__init__.py,sha256=BTtHIPCYeGjqgOcvqb8qPD4VNX-ICKOg6wnkew1cPOE,98
11
11
  autogluon/timeseries/configs/presets_configs.py,sha256=cLat8ecLlWrI-SC5KLBDCX2SbVXaucemy2pjxJAtSY0,2543
12
12
  autogluon/timeseries/dataset/__init__.py,sha256=UvnhAN5tjgxXTHoZMQDy64YMDj4Xxa68yY7NP4vAw0o,81
@@ -32,15 +32,15 @@ autogluon/timeseries/models/chronos/pipeline/__init__.py,sha256=bkTR0LSKIxAaKFOr
32
32
  autogluon/timeseries/models/chronos/pipeline/base.py,sha256=14OAKHmio6LmO4mVom2mPGB0CvIrOjMGJzb-MVSAq-s,5596
33
33
  autogluon/timeseries/models/chronos/pipeline/chronos.py,sha256=uFJLsSb2WQiSrmDZ0g2mO-lhTFUlq7vplGRBXZ9_VBk,22591
34
34
  autogluon/timeseries/models/chronos/pipeline/chronos_bolt.py,sha256=kNIDesojKB3rbEK9jM8st4k7ZeaT6tz1znf4PsRDv2Q,20066
35
- autogluon/timeseries/models/chronos/pipeline/utils.py,sha256=KHvhmyLUircxjnCRWwXlgFePGwOMhD20YY55TviROuI,13042
35
+ autogluon/timeseries/models/chronos/pipeline/utils.py,sha256=rWqT3DB9upZb7GFVMOxc-ww2EhH8bD7TmEZNi_xTAbE,13033
36
36
  autogluon/timeseries/models/ensemble/__init__.py,sha256=x2Y6dWk15XugTEWNUKq8U5z6nIjelo3UjpI-TfS13OE,159
37
37
  autogluon/timeseries/models/ensemble/abstract.py,sha256=ie-BKD4JIkQQoKqtf6sYI5Aix7dSgywFsSdeGPxoElk,5821
38
38
  autogluon/timeseries/models/ensemble/basic.py,sha256=BRPWg_Wgfb87iInFSoTRE75BRHaovRR5HFRvzxET_wU,3423
39
39
  autogluon/timeseries/models/ensemble/greedy.py,sha256=fKVLtnaJZ03zrfr9yqxvyA5IdiMtFL6TQidqw0BoqkU,7220
40
- autogluon/timeseries/models/gluonts/__init__.py,sha256=asC1PTj4j9xMbilvk1IT1julnpeoKbv5ZNuAR6-DFgA,361
41
- autogluon/timeseries/models/gluonts/abstract_gluonts.py,sha256=5VOdRLk5YW79_9af66yxCczgrTBApzNhciRFhAzaIIQ,32665
42
- autogluon/timeseries/models/gluonts/torch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- autogluon/timeseries/models/gluonts/torch/models.py,sha256=f7IicZzLAN2v_9y3Pxt9G6f48xIzmDjb1U5k44hS3O0,25760
40
+ autogluon/timeseries/models/gluonts/__init__.py,sha256=YfyNYOkhhNsloA4MAavfmqKO29_q6o4lwPoV7L4_h7M,355
41
+ autogluon/timeseries/models/gluonts/abstract.py,sha256=ae-VGN2KY6W8RtzZH3wxhjUP-aMjdWZrZbAPOIYh-1Y,27808
42
+ autogluon/timeseries/models/gluonts/dataset.py,sha256=I_4Rq2CXiLiiSf99WYYaRfT7NXEUmlkW1JIZnWjAdLY,5121
43
+ autogluon/timeseries/models/gluonts/models.py,sha256=Pi_zCRkslt2-LXkZpE56aRx9J4gRCOVabqYltPtI9tE,25718
44
44
  autogluon/timeseries/models/local/__init__.py,sha256=e2UImoJhmj70E148IIObv90C_bHxgyLNk6YsS4p7pfs,701
45
45
  autogluon/timeseries/models/local/abstract_local_model.py,sha256=0apyzut7Vs3jElsR1YipMqRQrskgrZu6kJFs-k4DB0g,12053
46
46
  autogluon/timeseries/models/local/naive.py,sha256=SMdA2Tu-o7gfOLhOoh5m1oe85F3LXn9ulTzRXFhLH20,7252
@@ -60,11 +60,11 @@ autogluon/timeseries/utils/datetime/base.py,sha256=3NdsH3NDq4cVAOSoy3XpaNixyNlbj
60
60
  autogluon/timeseries/utils/datetime/lags.py,sha256=gQDk5_zmsY5DUWDUpSaCKYkQ9nHKKY-LsywJQRAoYSk,5988
61
61
  autogluon/timeseries/utils/datetime/seasonality.py,sha256=YK_2k8hvYIMW-sJPnjGWRtCnvIOthwA2hATB3nwVoD4,834
62
62
  autogluon/timeseries/utils/datetime/time_features.py,sha256=MjLi3zQ00uWWJtXH9oGX2GJkTbvjdSiuabSa4kcVuxE,2672
63
- autogluon.timeseries-1.3.2b20250625.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
64
- autogluon.timeseries-1.3.2b20250625.dist-info/METADATA,sha256=gvvE1mhWi_xgzM8oQuK-vaJKa6aq31ux76h9xRjkyvk,12737
65
- autogluon.timeseries-1.3.2b20250625.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
66
- autogluon.timeseries-1.3.2b20250625.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
67
- autogluon.timeseries-1.3.2b20250625.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
68
- autogluon.timeseries-1.3.2b20250625.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
69
- autogluon.timeseries-1.3.2b20250625.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
70
- autogluon.timeseries-1.3.2b20250625.dist-info/RECORD,,
63
+ autogluon.timeseries-1.3.2b20250627.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
64
+ autogluon.timeseries-1.3.2b20250627.dist-info/METADATA,sha256=w6_zNdLzW0JfW2DUA4vMPvmHCaPNk21KhjyDPN9Oeuc,12737
65
+ autogluon.timeseries-1.3.2b20250627.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
66
+ autogluon.timeseries-1.3.2b20250627.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
67
+ autogluon.timeseries-1.3.2b20250627.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
68
+ autogluon.timeseries-1.3.2b20250627.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
69
+ autogluon.timeseries-1.3.2b20250627.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
70
+ autogluon.timeseries-1.3.2b20250627.dist-info/RECORD,,
File without changes