autogluon.timeseries 1.2.1b20250423__py3-none-any.whl → 1.2.1b20250424__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.
- autogluon/timeseries/dataset/ts_dataframe.py +17 -2
- autogluon/timeseries/predictor.py +50 -14
- autogluon/timeseries/utils/features.py +4 -1
- autogluon/timeseries/utils/warning_filters.py +1 -1
- autogluon/timeseries/version.py +1 -1
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/METADATA +5 -4
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/RECORD +14 -14
- /autogluon.timeseries-1.2.1b20250423-py3.9-nspkg.pth → /autogluon.timeseries-1.2.1b20250424-py3.9-nspkg.pth +0 -0
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/LICENSE +0 -0
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/NOTICE +0 -0
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/WHEEL +0 -0
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/namespace_packages.txt +0 -0
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/top_level.txt +0 -0
- {autogluon.timeseries-1.2.1b20250423.dist-info → autogluon.timeseries-1.2.1b20250424.dist-info}/zip-safe +0 -0
@@ -8,11 +8,12 @@ from collections.abc import Iterable
|
|
8
8
|
from itertools import islice
|
9
9
|
from pathlib import Path
|
10
10
|
from pprint import pformat
|
11
|
-
from typing import Any, List, Optional, Tuple, Type, Union
|
11
|
+
from typing import TYPE_CHECKING, Any, List, Optional, Tuple, Type, Union
|
12
12
|
|
13
13
|
import pandas as pd
|
14
14
|
from joblib.parallel import Parallel, delayed
|
15
15
|
from pandas.core.internals import ArrayManager, BlockManager # type: ignore
|
16
|
+
from typing_extensions import Self, overload
|
16
17
|
|
17
18
|
from autogluon.common.loaders import load_pd
|
18
19
|
|
@@ -1029,7 +1030,11 @@ class TimeSeriesDataFrame(pd.DataFrame):
|
|
1029
1030
|
|
1030
1031
|
# Resampling time for 1 item < overhead time for a single parallel job. Therefore, we group items into chunks
|
1031
1032
|
# so that the speedup from parallelization isn't dominated by the communication costs.
|
1032
|
-
|
1033
|
+
df = pd.DataFrame(self)
|
1034
|
+
# Make sure that timestamp index has dtype 'datetime64[ns]', otherwise index may contain NaT values.
|
1035
|
+
# See https://github.com/autogluon/autogluon/issues/4917
|
1036
|
+
df.index = df.index.set_levels(df.index.levels[1].astype("datetime64[ns]"), level=TIMESTAMP)
|
1037
|
+
chunks = split_into_chunks(df.groupby(level=ITEMID, sort=False), chunk_size)
|
1033
1038
|
resampled_chunks = Parallel(n_jobs=num_cpus)(delayed(resample_chunk)(chunk) for chunk in chunks)
|
1034
1039
|
resampled_df = TimeSeriesDataFrame(pd.concat(resampled_chunks))
|
1035
1040
|
resampled_df.static_features = self.static_features
|
@@ -1038,3 +1043,13 @@ class TimeSeriesDataFrame(pd.DataFrame):
|
|
1038
1043
|
def to_data_frame(self) -> pd.DataFrame:
|
1039
1044
|
"""Convert `TimeSeriesDataFrame` to a `pandas.DataFrame`"""
|
1040
1045
|
return pd.DataFrame(self)
|
1046
|
+
|
1047
|
+
if TYPE_CHECKING:
|
1048
|
+
|
1049
|
+
@overload
|
1050
|
+
def __new__(cls, data: pd.DataFrame, static_features: Optional[pd.DataFrame] = None) -> Self: ... # type: ignore
|
1051
|
+
|
1052
|
+
@overload
|
1053
|
+
def __getitem__(self, items: List[str]) -> Self: ... # type: ignore
|
1054
|
+
@overload
|
1055
|
+
def __getitem__(self, item: str) -> pd.Series: ... # type: ignore
|
@@ -305,15 +305,32 @@ class TimeSeriesPredictor:
|
|
305
305
|
df = df.convert_frequency(freq=self.freq)
|
306
306
|
return df
|
307
307
|
|
308
|
-
def
|
309
|
-
|
310
|
-
|
308
|
+
def _check_and_prepare_data_frame_for_evaluation(
|
309
|
+
self, data: TimeSeriesDataFrame, cutoff: Optional[int] = None, name: str = "data"
|
310
|
+
) -> TimeSeriesDataFrame:
|
311
|
+
"""
|
312
|
+
Make sure that provided evaluation data includes both historical and future time series values.
|
313
|
+
Slices the dataframe based on cutoff, if needed.
|
314
|
+
"""
|
315
|
+
cutoff = -1 * self.prediction_length if cutoff is None else cutoff
|
316
|
+
if not (isinstance(cutoff, int) and cutoff <= -self.prediction_length):
|
317
|
+
raise ValueError(f"`cutoff` should be a negative integer <= -prediction_length, got: {cutoff=}")
|
318
|
+
|
319
|
+
expected_length = -cutoff
|
320
|
+
|
321
|
+
if data.num_timesteps_per_item().min() <= expected_length:
|
322
|
+
var_name = "-cutoff" if expected_length > self.prediction_length else "prediction_length"
|
311
323
|
raise ValueError(
|
312
|
-
f"Cannot reserve last
|
324
|
+
f"Cannot reserve last {expected_length} time steps for evaluation in some "
|
313
325
|
f"time series in {name}. Please make sure that {name} includes both historical and future data, and that"
|
314
|
-
f"all time series have length >
|
326
|
+
f"all time series have length > {var_name} (at least {expected_length + 1})"
|
315
327
|
)
|
316
328
|
|
329
|
+
if cutoff < -self.prediction_length:
|
330
|
+
data = data.slice_by_timestep(None, cutoff + self.prediction_length)
|
331
|
+
|
332
|
+
return data
|
333
|
+
|
317
334
|
def _get_dataset_stats(self, data: TimeSeriesDataFrame) -> str:
|
318
335
|
ts_lengths = data.num_timesteps_per_item()
|
319
336
|
median_length = ts_lengths.median()
|
@@ -701,7 +718,7 @@ class TimeSeriesPredictor:
|
|
701
718
|
|
702
719
|
if tuning_data is not None:
|
703
720
|
tuning_data = self._check_and_prepare_data_frame(tuning_data, name="tuning_data")
|
704
|
-
self.
|
721
|
+
tuning_data = self._check_and_prepare_data_frame_for_evaluation(tuning_data, name="tuning_data")
|
705
722
|
logger.info(f"Provided tuning_data has {self._get_dataset_stats(tuning_data)}")
|
706
723
|
# TODO: Use num_val_windows to perform multi-window backtests on tuning_data
|
707
724
|
if num_val_windows > 0:
|
@@ -846,6 +863,7 @@ class TimeSeriesPredictor:
|
|
846
863
|
data: Union[TimeSeriesDataFrame, pd.DataFrame, Path, str],
|
847
864
|
model: Optional[str] = None,
|
848
865
|
metrics: Optional[Union[str, TimeSeriesScorer, List[Union[str, TimeSeriesScorer]]]] = None,
|
866
|
+
cutoff: Optional[int] = None,
|
849
867
|
display: bool = False,
|
850
868
|
use_cache: bool = True,
|
851
869
|
) -> Dict[str, float]:
|
@@ -863,11 +881,13 @@ class TimeSeriesPredictor:
|
|
863
881
|
Parameters
|
864
882
|
----------
|
865
883
|
data : Union[TimeSeriesDataFrame, pd.DataFrame, Path, str]
|
866
|
-
The data to evaluate the best model on.
|
867
|
-
``data`` will be held out for prediction and forecast accuracy will
|
884
|
+
The data to evaluate the best model on. If a ``cutoff`` is not provided, the last ``prediction_length``
|
885
|
+
time steps of each time series in ``data`` will be held out for prediction and forecast accuracy will
|
886
|
+
be calculated on these time steps. When a ``cutoff`` is provided, the ``-cutoff``-th to the
|
887
|
+
``-cutoff + prediction_length``-th time steps of each time series are used for evaluation.
|
868
888
|
|
869
889
|
Must include both historical and future data (i.e., length of all time series in ``data`` must be at least
|
870
|
-
``prediction_length + 1``).
|
890
|
+
``prediction_length + 1``, if ``cutoff`` is not provided, ``-cutoff + 1`` otherwise).
|
871
891
|
|
872
892
|
The names and dtypes of columns and static features in ``data`` must match the ``train_data`` used to train
|
873
893
|
the predictor.
|
@@ -880,6 +900,11 @@ class TimeSeriesPredictor:
|
|
880
900
|
metrics : str, TimeSeriesScorer or List[Union[str, TimeSeriesScorer]], optional
|
881
901
|
Metric or a list of metrics to compute scores with. Defaults to ``self.eval_metric``. Supports both
|
882
902
|
metric names as strings and custom metrics based on TimeSeriesScorer.
|
903
|
+
cutoff : int, optional
|
904
|
+
A *negative* integer less than or equal to ``-1 * prediction_length`` denoting the time step in ``data``
|
905
|
+
where the forecast evaluation starts, i.e., time series are evaluated from the ``-cutoff``-th to the
|
906
|
+
``-cutoff + prediction_length``-th time step. Defaults to ``-1 * prediction_length``, using the last
|
907
|
+
``prediction_length`` time steps of each time series for evaluation.
|
883
908
|
display : bool, default = False
|
884
909
|
If True, the scores will be printed.
|
885
910
|
use_cache : bool, default = True
|
@@ -893,8 +918,10 @@ class TimeSeriesPredictor:
|
|
893
918
|
will have their signs flipped to obey this convention. For example, negative MAPE values will be reported.
|
894
919
|
To get the ``eval_metric`` score, do ``output[predictor.eval_metric.name]``.
|
895
920
|
"""
|
921
|
+
|
896
922
|
data = self._check_and_prepare_data_frame(data)
|
897
|
-
self.
|
923
|
+
data = self._check_and_prepare_data_frame_for_evaluation(data, cutoff=cutoff)
|
924
|
+
|
898
925
|
scores_dict = self._learner.evaluate(data, model=model, metrics=metrics, use_cache=use_cache)
|
899
926
|
if display:
|
900
927
|
logger.info("Evaluations on test data:")
|
@@ -1010,7 +1037,7 @@ class TimeSeriesPredictor:
|
|
1010
1037
|
"""
|
1011
1038
|
if data is not None:
|
1012
1039
|
data = self._check_and_prepare_data_frame(data)
|
1013
|
-
self.
|
1040
|
+
data = self._check_and_prepare_data_frame_for_evaluation(data)
|
1014
1041
|
|
1015
1042
|
fi_df = self._learner.get_feature_importance(
|
1016
1043
|
data=data,
|
@@ -1188,6 +1215,7 @@ class TimeSeriesPredictor:
|
|
1188
1215
|
def leaderboard(
|
1189
1216
|
self,
|
1190
1217
|
data: Optional[Union[TimeSeriesDataFrame, pd.DataFrame, Path, str]] = None,
|
1218
|
+
cutoff: Optional[int] = None,
|
1191
1219
|
extra_info: bool = False,
|
1192
1220
|
extra_metrics: Optional[List[Union[str, TimeSeriesScorer]]] = None,
|
1193
1221
|
display: bool = False,
|
@@ -1216,13 +1244,19 @@ class TimeSeriesPredictor:
|
|
1216
1244
|
----------
|
1217
1245
|
data : Union[TimeSeriesDataFrame, pd.DataFrame, Path, str], optional
|
1218
1246
|
dataset used for additional evaluation. Must include both historical and future data (i.e., length of all
|
1219
|
-
time series in ``data`` must be at least ``prediction_length + 1``
|
1247
|
+
time series in ``data`` must be at least ``prediction_length + 1``, if ``cutoff`` is not provided,
|
1248
|
+
``-cutoff + 1`` otherwise).
|
1220
1249
|
|
1221
1250
|
The names and dtypes of columns and static features in ``data`` must match the ``train_data`` used to train
|
1222
1251
|
the predictor.
|
1223
1252
|
|
1224
1253
|
If provided data is a `pandas.DataFrame`, AutoGluon will attempt to convert it to a `TimeSeriesDataFrame`.
|
1225
1254
|
If a `str` or a `Path` is provided, AutoGluon will attempt to load this file.
|
1255
|
+
cutoff : int, optional
|
1256
|
+
A *negative* integer less than or equal to ``-1 * prediction_length`` denoting the time step in ``data``
|
1257
|
+
where the forecast evaluation starts, i.e., time series are evaluated from the ``-cutoff``-th to the
|
1258
|
+
``-cutoff + prediction_length``-th time step. Defaults to ``-1 * prediction_length``, using the last
|
1259
|
+
``prediction_length`` time steps of each time series for evaluation.
|
1226
1260
|
extra_info : bool, default = False
|
1227
1261
|
If True, the leaderboard will contain an additional column `hyperparameters` with the hyperparameters used
|
1228
1262
|
by each model during training. An empty dictionary `{}` means that the model was trained with default
|
@@ -1258,10 +1292,12 @@ class TimeSeriesPredictor:
|
|
1258
1292
|
raise TypeError(f"TimeSeriesPredictor.leaderboard() got an unexpected keyword argument '{key}'")
|
1259
1293
|
if data is None and extra_metrics is not None:
|
1260
1294
|
raise ValueError("`extra_metrics` is only valid when `data` is specified.")
|
1295
|
+
if data is None and cutoff is not None:
|
1296
|
+
raise ValueError("`cutoff` is only valid when `data` is specified.")
|
1261
1297
|
|
1262
1298
|
if data is not None:
|
1263
1299
|
data = self._check_and_prepare_data_frame(data)
|
1264
|
-
self.
|
1300
|
+
data = self._check_and_prepare_data_frame_for_evaluation(data, cutoff=cutoff)
|
1265
1301
|
|
1266
1302
|
leaderboard = self._learner.leaderboard(
|
1267
1303
|
data, extra_info=extra_info, extra_metrics=extra_metrics, use_cache=use_cache
|
@@ -1430,7 +1466,7 @@ class TimeSeriesPredictor:
|
|
1430
1466
|
return cast(TimeSeriesDataFrame, ts_df[[self.target]])
|
1431
1467
|
|
1432
1468
|
test_data = self._check_and_prepare_data_frame(test_data)
|
1433
|
-
self.
|
1469
|
+
test_data = self._check_and_prepare_data_frame_for_evaluation(test_data, name="test_data")
|
1434
1470
|
test_data = self._learner.feature_generator.transform(test_data)
|
1435
1471
|
|
1436
1472
|
trainer = self._trainer
|
@@ -398,7 +398,7 @@ class AbstractFeatureImportanceTransform:
|
|
398
398
|
"""Transforms a series with the same index as the pandas DataFrame"""
|
399
399
|
raise NotImplementedError
|
400
400
|
|
401
|
-
def _transform_series(self, feature_data: pd.Series, is_categorical: bool) ->
|
401
|
+
def _transform_series(self, feature_data: pd.Series, is_categorical: bool) -> pd.Series:
|
402
402
|
"""Transforms a series with the same index as the pandas DataFrame"""
|
403
403
|
raise NotImplementedError
|
404
404
|
|
@@ -420,6 +420,7 @@ class AbstractFeatureImportanceTransform:
|
|
420
420
|
with warning_filter():
|
421
421
|
data[feature_name].update(self._transform_series(feature_data, is_categorical=is_categorical))
|
422
422
|
elif feature_name in self.covariate_metadata.static_features:
|
423
|
+
assert data.static_features is not None
|
423
424
|
feature_data = data.static_features[feature_name].copy()
|
424
425
|
feature_data.reset_index(drop=True, inplace=True)
|
425
426
|
data.static_features[feature_name] = self._transform_static_series(
|
@@ -459,6 +460,8 @@ class PermutationFeatureImportanceTransform(AbstractFeatureImportanceTransform):
|
|
459
460
|
)
|
460
461
|
elif self.shuffle_type == "naive":
|
461
462
|
return pd.Series(feature_data.sample(frac=1, random_state=rng).values, index=feature_data.index)
|
463
|
+
else:
|
464
|
+
raise ValueError(f"Unknown shuffle_type: {self.shuffle_type}")
|
462
465
|
|
463
466
|
|
464
467
|
class ConstantReplacementFeatureImportanceTransform(AbstractFeatureImportanceTransform):
|
@@ -57,7 +57,7 @@ def disable_tqdm():
|
|
57
57
|
from tqdm import tqdm
|
58
58
|
|
59
59
|
_init = tqdm.__init__
|
60
|
-
tqdm.__init__ = functools.partialmethod(tqdm.__init__, disable=True)
|
60
|
+
tqdm.__init__ = functools.partialmethod(tqdm.__init__, disable=True) # type: ignore
|
61
61
|
yield
|
62
62
|
except ImportError:
|
63
63
|
yield
|
autogluon/timeseries/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: autogluon.timeseries
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.1b20250424
|
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,9 +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.2.
|
59
|
-
Requires-Dist: autogluon.common==1.2.
|
60
|
-
Requires-Dist: autogluon.
|
58
|
+
Requires-Dist: autogluon.core[raytune]==1.2.1b20250424
|
59
|
+
Requires-Dist: autogluon.common==1.2.1b20250424
|
60
|
+
Requires-Dist: autogluon.features==1.2.1b20250424
|
61
|
+
Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost]==1.2.1b20250424
|
61
62
|
Provides-Extra: all
|
62
63
|
Provides-Extra: chronos-onnx
|
63
64
|
Requires-Dist: optimum[onnxruntime]<1.23,>=1.17; extra == "chronos-onnx"
|
@@ -1,16 +1,16 @@
|
|
1
|
-
autogluon.timeseries-1.2.
|
1
|
+
autogluon.timeseries-1.2.1b20250424-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=7dqSHKCIX2osjv9cmWWLwaGvdrPvla0HTnsR75bdenY,14112
|
5
|
-
autogluon/timeseries/predictor.py,sha256=
|
5
|
+
autogluon/timeseries/predictor.py,sha256=AIgThzVtqjytEbNZjKM5SdmDJ3PtD-4hyjGBWnI2ot8,88012
|
6
6
|
autogluon/timeseries/regressor.py,sha256=xw5VPrXS-NQ_Ts4ppDjoNV0TdqUYjW4VINUtb_BZdiI,11868
|
7
7
|
autogluon/timeseries/splitter.py,sha256=yzPca9p2bWV-_VJAptUyyzQsxu-uixAdpMoGQtDzMD4,3205
|
8
8
|
autogluon/timeseries/trainer.py,sha256=-8UBCe_uzwOoMk8wHgVEEhN7mN2biumUzGrf5YY6n4w,58131
|
9
|
-
autogluon/timeseries/version.py,sha256=
|
9
|
+
autogluon/timeseries/version.py,sha256=loINeigkP0uoD8mSz8xCUY3ZkGa6XAO4_zkczMDg1so,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
|
13
|
-
autogluon/timeseries/dataset/ts_dataframe.py,sha256=
|
13
|
+
autogluon/timeseries/dataset/ts_dataframe.py,sha256=K-rC4pgy-QjPf3WBgpqxTLsxbmJeWb0Su_1C5wiOx3I,47873
|
14
14
|
autogluon/timeseries/metrics/__init__.py,sha256=dJCrZ2cHwqhqNctwQjwG-FHgGUmzIFT-D0z72f4RAVM,2104
|
15
15
|
autogluon/timeseries/metrics/abstract.py,sha256=CHUZB6xt9oF9yijSOjgGtjLuKo2X0mT6dQDuwg4ZzpU,8192
|
16
16
|
autogluon/timeseries/metrics/point.py,sha256=2nlieQcPBCI9hXMT3v0Oe802ykZDuzvEtDpunzt0IVA,15785
|
@@ -52,19 +52,19 @@ autogluon/timeseries/transforms/__init__.py,sha256=fkFc4Q1Dlh0vVRgO7nPD7BgNL9dOk
|
|
52
52
|
autogluon/timeseries/transforms/covariate_scaler.py,sha256=G56PTHKqCFKiXRKLkLun7mN3-T09jxN-5oI1ISADJdQ,7042
|
53
53
|
autogluon/timeseries/transforms/target_scaler.py,sha256=BeT1aP51Wq9EidxC0dVg6dHvampKafpG1uKu4ZaaJPs,6050
|
54
54
|
autogluon/timeseries/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
|
-
autogluon/timeseries/utils/features.py,sha256=
|
55
|
+
autogluon/timeseries/utils/features.py,sha256=7gyRkuD2sMwJivF6O_bW7kADJBnCbBM055CnwkoU94I,22658
|
56
56
|
autogluon/timeseries/utils/forecast.py,sha256=vd0Y5YsHU6awu4E7xyDXQGe21P1aB26gwFsA3m09mKw,2197
|
57
|
-
autogluon/timeseries/utils/warning_filters.py,sha256=
|
57
|
+
autogluon/timeseries/utils/warning_filters.py,sha256=tHvhj9y7c3MP6JrjAedc7UiFFw0_mKYziDQupw8NhiQ,2538
|
58
58
|
autogluon/timeseries/utils/datetime/__init__.py,sha256=bTMR8jLh1LW55vHjbOr1zvWRMF_PqbvxpS-cUcNIDWI,173
|
59
59
|
autogluon/timeseries/utils/datetime/base.py,sha256=3NdsH3NDq4cVAOSoy3XpaNixyNlbjy4DJ_YYOGuu9x4,1341
|
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.2.
|
64
|
-
autogluon.timeseries-1.2.
|
65
|
-
autogluon.timeseries-1.2.
|
66
|
-
autogluon.timeseries-1.2.
|
67
|
-
autogluon.timeseries-1.2.
|
68
|
-
autogluon.timeseries-1.2.
|
69
|
-
autogluon.timeseries-1.2.
|
70
|
-
autogluon.timeseries-1.2.
|
63
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
|
64
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/METADATA,sha256=UAKQzIEQ7dyWUtNzTZez2aSAa2tvwpMflldTFzY4hOw,12737
|
65
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
|
66
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
67
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
|
68
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
|
69
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
70
|
+
autogluon.timeseries-1.2.1b20250424.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|