From a800d4f996172217ab2fc2983c78fb906355a20d Mon Sep 17 00:00:00 2001 From: Ryuta Yoshimatsu Date: Mon, 20 May 2024 16:53:04 +0200 Subject: [PATCH] renaming the main module from forecasting_sa to mmf_sa --- {forecasting_sa => mmf_sa}/AutoEDA.py | 4 +- {forecasting_sa => mmf_sa}/Forecaster.py | 6 +- {forecasting_sa => mmf_sa}/__init__.py | 2 +- .../base_forecasting_conf.yaml | 0 {forecasting_sa => mmf_sa}/common.py | 0 .../data_quality_checks.py | 0 {forecasting_sa => mmf_sa}/eda/__init__.py | 0 .../eda/eda_template_v2.html | 0 {forecasting_sa => mmf_sa}/jobs/__init__.py | 0 {forecasting_sa => mmf_sa}/jobs/eda_job.py | 4 +- .../jobs/forecasting_job.py | 4 +- .../jobs/retraining_evaluation_job.py | 4 +- {forecasting_sa => mmf_sa}/models/__init__.py | 2 +- .../models/abstract_model.py | 2 +- .../models/models_conf.yaml | 62 +++++++++---------- .../neuralforecast/NeuralForecastPipeline.py | 2 +- .../models/neuralforecast/__init__.py | 0 .../PyTorchForecastingModel.py | 0 .../PyTorchForecastingPipeline.py | 6 +- .../models/pytorch_forecasting/__init__.py | 0 .../r_fable/RFableForecastingPipeline.py | 4 +- .../models/r_fable/__init__.py | 0 .../sktime/SKTimeForecastingPipeline.py | 2 +- .../models/sktime/__init__.py | 0 .../StatsFcForecastingPipeline.py | 4 +- .../models/statsforecast/__init__.py | 0 .../demo_global_external_regressors_daily.py | 2 +- notebooks/demo_global_monthly.py | 2 +- notebooks/demo_local_univariate_daily.py | 2 +- ...al_univariate_external_regressors_daily.py | 2 +- notebooks/demo_local_univariate_monthly.py | 2 +- notebooks/run_global_daily.py | 2 +- .../run_global_external_regressors_daily.py | 2 +- notebooks/run_global_monthly.py | 2 +- pyproject.toml | 4 +- tests/integration_test.py | 2 +- .../test_exogenous_regressors_pipeline.py | 2 +- tests/unit/test_pipelines.py | 2 +- tests/unit/test_sktime_pipeline.py | 2 +- 39 files changed, 68 insertions(+), 68 deletions(-) rename {forecasting_sa => mmf_sa}/AutoEDA.py (99%) rename {forecasting_sa => mmf_sa}/Forecaster.py (99%) rename {forecasting_sa => mmf_sa}/__init__.py (99%) rename {forecasting_sa => mmf_sa}/base_forecasting_conf.yaml (100%) rename {forecasting_sa => mmf_sa}/common.py (100%) rename {forecasting_sa => mmf_sa}/data_quality_checks.py (100%) rename {forecasting_sa => mmf_sa}/eda/__init__.py (100%) rename {forecasting_sa => mmf_sa}/eda/eda_template_v2.html (100%) rename {forecasting_sa => mmf_sa}/jobs/__init__.py (100%) rename {forecasting_sa => mmf_sa}/jobs/eda_job.py (87%) rename {forecasting_sa => mmf_sa}/jobs/forecasting_job.py (88%) rename {forecasting_sa => mmf_sa}/jobs/retraining_evaluation_job.py (89%) rename {forecasting_sa => mmf_sa}/models/__init__.py (97%) rename {forecasting_sa => mmf_sa}/models/abstract_model.py (99%) rename {forecasting_sa => mmf_sa}/models/models_conf.yaml (78%) rename {forecasting_sa => mmf_sa}/models/neuralforecast/NeuralForecastPipeline.py (99%) rename {forecasting_sa => mmf_sa}/models/neuralforecast/__init__.py (100%) rename {forecasting_sa => mmf_sa}/models/pytorch_forecasting/PyTorchForecastingModel.py (100%) rename {forecasting_sa => mmf_sa}/models/pytorch_forecasting/PyTorchForecastingPipeline.py (91%) rename {forecasting_sa => mmf_sa}/models/pytorch_forecasting/__init__.py (100%) rename {forecasting_sa => mmf_sa}/models/r_fable/RFableForecastingPipeline.py (98%) rename {forecasting_sa => mmf_sa}/models/r_fable/__init__.py (100%) rename {forecasting_sa => mmf_sa}/models/sktime/SKTimeForecastingPipeline.py (98%) rename {forecasting_sa => mmf_sa}/models/sktime/__init__.py (100%) rename {forecasting_sa => mmf_sa}/models/statsforecast/StatsFcForecastingPipeline.py (99%) rename {forecasting_sa => mmf_sa}/models/statsforecast/__init__.py (100%) diff --git a/forecasting_sa/AutoEDA.py b/mmf_sa/AutoEDA.py similarity index 99% rename from forecasting_sa/AutoEDA.py rename to mmf_sa/AutoEDA.py index a2f92a9..c9b9036 100644 --- a/forecasting_sa/AutoEDA.py +++ b/mmf_sa/AutoEDA.py @@ -385,10 +385,10 @@ def add_title_and_describtion(self, html_object: str, title: "", describtion: "" def report_generation_new(self): def load_html(): - import forecasting_sa.html_templates + import mmf_sa.html_templates html_template = pkg_resources.read_text( - sys.modules["forecasting_sa.html_templates"], "eda_template_v2.html" + sys.modules["mmf_sa.html_templates"], "eda_template_v2.html" ) return html_template diff --git a/forecasting_sa/Forecaster.py b/mmf_sa/Forecaster.py similarity index 99% rename from forecasting_sa/Forecaster.py rename to mmf_sa/Forecaster.py index 112ed19..0bf0440 100644 --- a/forecasting_sa/Forecaster.py +++ b/mmf_sa/Forecaster.py @@ -28,9 +28,9 @@ IntegerType, ) from pyspark.sql.functions import lit, avg, min, max, col, posexplode, collect_list, to_date -from forecasting_sa.models.abstract_model import ForecastingRegressor -from forecasting_sa.models import ModelRegistry -from forecasting_sa.data_quality_checks import DataQualityChecks +from mmf_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models import ModelRegistry +from mmf_sa.data_quality_checks import DataQualityChecks _logger = logging.getLogger(__name__) os.environ['NIXTLA_ID_AS_COL'] = '1' mlflow.set_registry_uri("databricks-uc") diff --git a/forecasting_sa/__init__.py b/mmf_sa/__init__.py similarity index 99% rename from forecasting_sa/__init__.py rename to mmf_sa/__init__.py index 00f4192..2c85c7d 100644 --- a/forecasting_sa/__init__.py +++ b/mmf_sa/__init__.py @@ -12,7 +12,7 @@ from omegaconf.basecontainer import BaseContainer from pyspark.sql import SparkSession, DataFrame -from forecasting_sa.Forecaster import Forecaster +from mmf_sa.Forecaster import Forecaster def run_forecast( diff --git a/forecasting_sa/base_forecasting_conf.yaml b/mmf_sa/base_forecasting_conf.yaml similarity index 100% rename from forecasting_sa/base_forecasting_conf.yaml rename to mmf_sa/base_forecasting_conf.yaml diff --git a/forecasting_sa/common.py b/mmf_sa/common.py similarity index 100% rename from forecasting_sa/common.py rename to mmf_sa/common.py diff --git a/forecasting_sa/data_quality_checks.py b/mmf_sa/data_quality_checks.py similarity index 100% rename from forecasting_sa/data_quality_checks.py rename to mmf_sa/data_quality_checks.py diff --git a/forecasting_sa/eda/__init__.py b/mmf_sa/eda/__init__.py similarity index 100% rename from forecasting_sa/eda/__init__.py rename to mmf_sa/eda/__init__.py diff --git a/forecasting_sa/eda/eda_template_v2.html b/mmf_sa/eda/eda_template_v2.html similarity index 100% rename from forecasting_sa/eda/eda_template_v2.html rename to mmf_sa/eda/eda_template_v2.html diff --git a/forecasting_sa/jobs/__init__.py b/mmf_sa/jobs/__init__.py similarity index 100% rename from forecasting_sa/jobs/__init__.py rename to mmf_sa/jobs/__init__.py diff --git a/forecasting_sa/jobs/eda_job.py b/mmf_sa/jobs/eda_job.py similarity index 87% rename from forecasting_sa/jobs/eda_job.py rename to mmf_sa/jobs/eda_job.py index 52849e9..b8b8770 100644 --- a/forecasting_sa/jobs/eda_job.py +++ b/mmf_sa/jobs/eda_job.py @@ -1,8 +1,8 @@ import mlflow from mlflow.tracking import MlflowClient -from forecasting_sa.AutoEDA import AutoEDA -from forecasting_sa.common import Job +from mmf_sa.AutoEDA import AutoEDA +from mmf_sa.common import Job class EDAJob(Job): diff --git a/forecasting_sa/jobs/forecasting_job.py b/mmf_sa/jobs/forecasting_job.py similarity index 88% rename from forecasting_sa/jobs/forecasting_job.py rename to mmf_sa/jobs/forecasting_job.py index 2188c3d..0c108eb 100644 --- a/forecasting_sa/jobs/forecasting_job.py +++ b/mmf_sa/jobs/forecasting_job.py @@ -1,8 +1,8 @@ import mlflow from mlflow.tracking import MlflowClient -from forecasting_sa.Forecaster import Forecaster -from forecasting_sa.common import Job +from mmf_sa.Forecaster import Forecaster +from mmf_sa.common import Job class ForecastingJob(Job): diff --git a/forecasting_sa/jobs/retraining_evaluation_job.py b/mmf_sa/jobs/retraining_evaluation_job.py similarity index 89% rename from forecasting_sa/jobs/retraining_evaluation_job.py rename to mmf_sa/jobs/retraining_evaluation_job.py index 804f5e2..18bab51 100644 --- a/forecasting_sa/jobs/retraining_evaluation_job.py +++ b/mmf_sa/jobs/retraining_evaluation_job.py @@ -1,8 +1,8 @@ import mlflow from mlflow.tracking import MlflowClient -from forecasting_sa.Forecaster import Forecaster -from forecasting_sa.common import Job +from mmf_sa.Forecaster import Forecaster +from mmf_sa.common import Job class RetrainingEvaluationJob(Job): diff --git a/forecasting_sa/models/__init__.py b/mmf_sa/models/__init__.py similarity index 97% rename from forecasting_sa/models/__init__.py rename to mmf_sa/models/__init__.py index 4d9715c..271d3aa 100644 --- a/forecasting_sa/models/__init__.py +++ b/mmf_sa/models/__init__.py @@ -2,7 +2,7 @@ import sys import importlib.resources as pkg_resources from omegaconf import OmegaConf, DictConfig -from forecasting_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models.abstract_model import ForecastingRegressor class ModelRegistry: diff --git a/forecasting_sa/models/abstract_model.py b/mmf_sa/models/abstract_model.py similarity index 99% rename from forecasting_sa/models/abstract_model.py rename to mmf_sa/models/abstract_model.py index fc91ebd..756002e 100644 --- a/forecasting_sa/models/abstract_model.py +++ b/mmf_sa/models/abstract_model.py @@ -25,7 +25,7 @@ def prepare_data(self, df: pd.DataFrame) -> pd.DataFrame: return df @abstractmethod - def fit(self, x, y=None, spark=None): + def fit(self, x, y=None): pass @abstractmethod diff --git a/forecasting_sa/models/models_conf.yaml b/mmf_sa/models/models_conf.yaml similarity index 78% rename from forecasting_sa/models/models_conf.yaml rename to mmf_sa/models/models_conf.yaml index a27161d..49db718 100644 --- a/forecasting_sa/models/models_conf.yaml +++ b/mmf_sa/models/models_conf.yaml @@ -19,7 +19,7 @@ promoted_props: models: StatsForecastBaselineWindowAverage: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcBaselineWindowAverage framework: StatsForecast model_type: local @@ -28,7 +28,7 @@ models: window_size: 7 StatsForecastBaselineSeasonalWindowAverage: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcBaselineSeasonalWindowAverage framework: StatsForecast model_type: local @@ -38,14 +38,14 @@ models: window_size: 7 StatsForecastBaselineNaive: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcBaselineNaive framework: StatsForecast model_type: local trainable: false StatsForecastBaselineSeasonalNaive: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcBaselineSeasonalNaive framework: StatsForecast model_type: local @@ -54,7 +54,7 @@ models: season_length: 7 StatsForecastAutoArima: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcAutoArima framework: StatsForecast model_type: local @@ -65,7 +65,7 @@ models: level: StatsForecastAutoETS: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcAutoETS framework: StatsForecast model_type: local @@ -75,7 +75,7 @@ models: model_type: "ZZZ" StatsForecastAutoCES: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcAutoCES framework: StatsForecast model_type: local @@ -85,7 +85,7 @@ models: model_type: "Z" StatsForecastAutoTheta: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcAutoTheta framework: StatsForecast model_type: local @@ -95,7 +95,7 @@ models: decomposition_type: "multiplicative" StatsForecastTSB: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcTSB framework: StatsForecast model_type: local @@ -105,7 +105,7 @@ models: alpha_p: 0.2 StatsForecastADIDA: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcADIDA framework: StatsForecast model_type: local @@ -113,7 +113,7 @@ models: model_spec: StatsForecastIMAPA: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcIMAPA framework: StatsForecast model_type: local @@ -121,7 +121,7 @@ models: model_spec: StatsForecastCrostonClassic: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcCrostonClassic framework: StatsForecast model_type: local @@ -129,7 +129,7 @@ models: model_spec: StatsForecastCrostonOptimized: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcCrostonOptimized framework: StatsForecast model_type: local @@ -137,7 +137,7 @@ models: model_spec: StatsForecastCrostonSBA: - module: forecasting_sa.models.statsforecast.StatsFcForecastingPipeline + module: mmf_sa.models.statsforecast.StatsFcForecastingPipeline model_class: StatsFcCrostonSBA framework: StatsForecast model_type: local @@ -145,7 +145,7 @@ models: model_spec: RFableArima: - module: forecasting_sa.models.r_fable.RFableForecastingPipeline + module: mmf_sa.models.r_fable.RFableForecastingPipeline model_class: RFableModel framework: RFable model_type: local @@ -154,7 +154,7 @@ models: season_length: RFableETS: - module: forecasting_sa.models.r_fable.RFableForecastingPipeline + module: mmf_sa.models.r_fable.RFableForecastingPipeline model_class: RFableModel framework: RFable model_type: local @@ -163,7 +163,7 @@ models: season_length: RFableNNETAR: - module: forecasting_sa.models.r_fable.RFableForecastingPipeline + module: mmf_sa.models.r_fable.RFableForecastingPipeline model_class: RFableModel framework: RFable model_type: local @@ -172,14 +172,14 @@ models: season_length: RFableEnsemble: - module: forecasting_sa.models.r_fable.RFableForecastingPipeline + module: mmf_sa.models.r_fable.RFableForecastingPipeline model_class: RFableModel framework: RFable model_type: local trainable: false RDynamicHarmonicRegression: - module: forecasting_sa.models.r_fable.RFableForecastingPipeline + module: mmf_sa.models.r_fable.RFableForecastingPipeline model_class: RFableModel framework: RFable model_type: local @@ -188,7 +188,7 @@ models: fourier_terms: SKTimeLgbmDsDt: - module: forecasting_sa.models.sktime.SKTimeForecastingPipeline + module: mmf_sa.models.sktime.SKTimeForecastingPipeline model_class: SKTimeLgbmDsDt framework: SKTime model_type: local @@ -200,7 +200,7 @@ models: detrend_poly_degree: 2 SKTimeTBats: - module: forecasting_sa.models.sktime.SKTimeForecastingPipeline + module: mmf_sa.models.sktime.SKTimeForecastingPipeline model_class: SKTimeTBats framework: SKTime model_type: local @@ -212,7 +212,7 @@ models: season_length: 7 NeuralForecastRNN: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcRNN framework: NeuralForecast model_type: global @@ -232,7 +232,7 @@ models: decoder_layers: 2 NeuralForecastLSTM: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcLSTM framework: NeuralForecast model_type: global @@ -251,7 +251,7 @@ models: decoder_layers: 2 NeuralForecastNBEATSx: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcNBEATSx framework: NeuralForecast model_type: global @@ -267,7 +267,7 @@ models: dropout_prob_theta: 0.0 NeuralForecastNHITS: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcNHITS framework: NeuralForecast model_type: global @@ -287,7 +287,7 @@ models: pooling_mode: MaxPool1d NeuralForecastAutoRNN: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcAutoRNN framework: NeuralForecast model_type: global @@ -302,7 +302,7 @@ models: decoder_hidden_size: [ 64, 128, 256, 512 ] NeuralForecastAutoLSTM: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcAutoLSTM framework: NeuralForecast model_type: global @@ -317,7 +317,7 @@ models: decoder_hidden_size: [ 64, 128, 256, 512 ] NeuralForecastAutoNBEATSx: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcAutoNBEATSx framework: NeuralForecast model_type: global @@ -330,7 +330,7 @@ models: scaler_type: [ "robust", "standard" ] NeuralForecastAutoNHITS: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcAutoNHITS framework: NeuralForecast model_type: global @@ -345,7 +345,7 @@ models: scaler_type: [ "robust", "standard" ] NeuralForecastAutoTiDE: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcAutoTiDE framework: NeuralForecast model_type: global @@ -365,7 +365,7 @@ models: layernorm: [ True, False ] NeuralForecastAutoPatchTST: - module: forecasting_sa.models.neuralforecast.NeuralForecastPipeline + module: mmf_sa.models.neuralforecast.NeuralForecastPipeline model_class: NeuralFcAutoPatchTST framework: NeuralForecast model_type: global diff --git a/forecasting_sa/models/neuralforecast/NeuralForecastPipeline.py b/mmf_sa/models/neuralforecast/NeuralForecastPipeline.py similarity index 99% rename from forecasting_sa/models/neuralforecast/NeuralForecastPipeline.py rename to mmf_sa/models/neuralforecast/NeuralForecastPipeline.py index fd29f5f..c582be3 100644 --- a/forecasting_sa/models/neuralforecast/NeuralForecastPipeline.py +++ b/mmf_sa/models/neuralforecast/NeuralForecastPipeline.py @@ -2,7 +2,7 @@ import numpy as np from sktime.performance_metrics.forecasting import mean_absolute_percentage_error from neuralforecast import NeuralForecast -from forecasting_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models.abstract_model import ForecastingRegressor from neuralforecast.auto import ( RNN, LSTM, diff --git a/forecasting_sa/models/neuralforecast/__init__.py b/mmf_sa/models/neuralforecast/__init__.py similarity index 100% rename from forecasting_sa/models/neuralforecast/__init__.py rename to mmf_sa/models/neuralforecast/__init__.py diff --git a/forecasting_sa/models/pytorch_forecasting/PyTorchForecastingModel.py b/mmf_sa/models/pytorch_forecasting/PyTorchForecastingModel.py similarity index 100% rename from forecasting_sa/models/pytorch_forecasting/PyTorchForecastingModel.py rename to mmf_sa/models/pytorch_forecasting/PyTorchForecastingModel.py diff --git a/forecasting_sa/models/pytorch_forecasting/PyTorchForecastingPipeline.py b/mmf_sa/models/pytorch_forecasting/PyTorchForecastingPipeline.py similarity index 91% rename from forecasting_sa/models/pytorch_forecasting/PyTorchForecastingPipeline.py rename to mmf_sa/models/pytorch_forecasting/PyTorchForecastingPipeline.py index fe8c7bc..5173dcd 100644 --- a/forecasting_sa/models/pytorch_forecasting/PyTorchForecastingPipeline.py +++ b/mmf_sa/models/pytorch_forecasting/PyTorchForecastingPipeline.py @@ -2,13 +2,13 @@ from sklearn.base import BaseEstimator, TransformerMixin from sklearn.pipeline import Pipeline -from forecasting_sa.models.abstract_model import ForecastingSARegressor -from forecasting_sa.models.pytorch_forecasting.PyTorchForecastingModel import ( +from mmf_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models.pytorch_forecasting.PyTorchForecastingModel import ( PyTorchForecastingRegressor, ) -class PyTorchForecastingPipelineRegressor(ForecastingSARegressor): +class PyTorchForecastingPipelineRegressor(ForecastingRegressor): def __init__(self, params): super().__init__(params) self.params = params diff --git a/forecasting_sa/models/pytorch_forecasting/__init__.py b/mmf_sa/models/pytorch_forecasting/__init__.py similarity index 100% rename from forecasting_sa/models/pytorch_forecasting/__init__.py rename to mmf_sa/models/pytorch_forecasting/__init__.py diff --git a/forecasting_sa/models/r_fable/RFableForecastingPipeline.py b/mmf_sa/models/r_fable/RFableForecastingPipeline.py similarity index 98% rename from forecasting_sa/models/r_fable/RFableForecastingPipeline.py rename to mmf_sa/models/r_fable/RFableForecastingPipeline.py index 3bf8fe2..13dc7a9 100644 --- a/forecasting_sa/models/r_fable/RFableForecastingPipeline.py +++ b/mmf_sa/models/r_fable/RFableForecastingPipeline.py @@ -8,7 +8,7 @@ from rpy2.robjects.lib.dplyr import DataFrame from rpy2.robjects import rl from rpy2.robjects.conversion import localconverter -from forecasting_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models.abstract_model import ForecastingRegressor # make sure R and the fable package are installed on your system @@ -228,8 +228,8 @@ def __init__(self, params): def __call__(self): if self.params.model_spec.fourier_terms is None: + # rhs = "PDQ(0, 0, 0)" raise Warning("0 Fourier terms specified. Use non-seasonal Arima") - rhs = "PDQ(0, 0, 0)" else: rhs = ( " + ".join( diff --git a/forecasting_sa/models/r_fable/__init__.py b/mmf_sa/models/r_fable/__init__.py similarity index 100% rename from forecasting_sa/models/r_fable/__init__.py rename to mmf_sa/models/r_fable/__init__.py diff --git a/forecasting_sa/models/sktime/SKTimeForecastingPipeline.py b/mmf_sa/models/sktime/SKTimeForecastingPipeline.py similarity index 98% rename from forecasting_sa/models/sktime/SKTimeForecastingPipeline.py rename to mmf_sa/models/sktime/SKTimeForecastingPipeline.py index 1ea5193..e2d1e8c 100644 --- a/forecasting_sa/models/sktime/SKTimeForecastingPipeline.py +++ b/mmf_sa/models/sktime/SKTimeForecastingPipeline.py @@ -13,7 +13,7 @@ from sktime.transformations.series.detrend import Detrender, ConditionalDeseasonalizer from sktime.forecasting.trend import PolynomialTrendForecaster from sktime.forecasting.base import ForecastingHorizon, BaseForecaster -from forecasting_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models.abstract_model import ForecastingRegressor class SKTimeForecastingPipeline(ForecastingRegressor): diff --git a/forecasting_sa/models/sktime/__init__.py b/mmf_sa/models/sktime/__init__.py similarity index 100% rename from forecasting_sa/models/sktime/__init__.py rename to mmf_sa/models/sktime/__init__.py diff --git a/forecasting_sa/models/statsforecast/StatsFcForecastingPipeline.py b/mmf_sa/models/statsforecast/StatsFcForecastingPipeline.py similarity index 99% rename from forecasting_sa/models/statsforecast/StatsFcForecastingPipeline.py rename to mmf_sa/models/statsforecast/StatsFcForecastingPipeline.py index 5435a8c..eedd5c0 100644 --- a/forecasting_sa/models/statsforecast/StatsFcForecastingPipeline.py +++ b/mmf_sa/models/statsforecast/StatsFcForecastingPipeline.py @@ -17,7 +17,7 @@ Naive, SeasonalNaive, ) -from forecasting_sa.models.abstract_model import ForecastingRegressor +from mmf_sa.models.abstract_model import ForecastingRegressor class StatsFcForecaster(ForecastingRegressor): @@ -79,7 +79,7 @@ def fit(self, x, y=None): self.model = StatsForecast(models=[self.model_spec], freq=self.freq, n_jobs=-1) self.model.fit(x) - def predict(self, hist_df: pd.DataFrame, val_df: pd.DataFrame): + def predict(self, hist_df: pd.DataFrame, val_df: pd.DataFrame = None): _df = self.prepare_data(hist_df) _exogenous = self.prepare_data(val_df, future=True) self.fit(_df) diff --git a/forecasting_sa/models/statsforecast/__init__.py b/mmf_sa/models/statsforecast/__init__.py similarity index 100% rename from forecasting_sa/models/statsforecast/__init__.py rename to mmf_sa/models/statsforecast/__init__.py diff --git a/notebooks/demo_global_external_regressors_daily.py b/notebooks/demo_global_external_regressors_daily.py index b24301d..1861adc 100644 --- a/notebooks/demo_global_external_regressors_daily.py +++ b/notebooks/demo_global_external_regressors_daily.py @@ -59,7 +59,7 @@ import pathlib import pandas as pd -from forecasting_sa import run_forecast +from mmf_sa import run_forecast active_models = [ "NeuralForecastRNN", diff --git a/notebooks/demo_global_monthly.py b/notebooks/demo_global_monthly.py index a7b5b02..ab6a647 100644 --- a/notebooks/demo_global_monthly.py +++ b/notebooks/demo_global_monthly.py @@ -22,7 +22,7 @@ import pathlib import pandas as pd -from forecasting_sa import run_forecast +from mmf_sa import run_forecast import logging logger = spark._jvm.org.apache.log4j logging.getLogger("py4j.java_gateway").setLevel(logging.ERROR) diff --git a/notebooks/demo_local_univariate_daily.py b/notebooks/demo_local_univariate_daily.py index 585c6df..16d2c8f 100644 --- a/notebooks/demo_local_univariate_daily.py +++ b/notebooks/demo_local_univariate_daily.py @@ -20,7 +20,7 @@ import pathlib import pandas as pd from datasetsforecast.m4 import M4 -from forecasting_sa import run_forecast +from mmf_sa import run_forecast # COMMAND ---------- diff --git a/notebooks/demo_local_univariate_external_regressors_daily.py b/notebooks/demo_local_univariate_external_regressors_daily.py index 3463d9c..12cfa2d 100644 --- a/notebooks/demo_local_univariate_external_regressors_daily.py +++ b/notebooks/demo_local_univariate_external_regressors_daily.py @@ -59,7 +59,7 @@ import pathlib import pandas as pd -from forecasting_sa import run_forecast +from mmf_sa import run_forecast active_models = [ "StatsForecastBaselineWindowAverage", diff --git a/notebooks/demo_local_univariate_monthly.py b/notebooks/demo_local_univariate_monthly.py index d7b7839..6322ef2 100644 --- a/notebooks/demo_local_univariate_monthly.py +++ b/notebooks/demo_local_univariate_monthly.py @@ -21,7 +21,7 @@ import pathlib import pandas as pd from datasetsforecast.m4 import M4 -from forecasting_sa import run_forecast +from mmf_sa import run_forecast # COMMAND ---------- diff --git a/notebooks/run_global_daily.py b/notebooks/run_global_daily.py index 415dd22..98dd9bc 100644 --- a/notebooks/run_global_daily.py +++ b/notebooks/run_global_daily.py @@ -14,7 +14,7 @@ # COMMAND ---------- -from forecasting_sa import run_forecast +from mmf_sa import run_forecast import logging logger = spark._jvm.org.apache.log4j logging.getLogger("py4j.java_gateway").setLevel(logging.ERROR) diff --git a/notebooks/run_global_external_regressors_daily.py b/notebooks/run_global_external_regressors_daily.py index e498108..191917d 100644 --- a/notebooks/run_global_external_regressors_daily.py +++ b/notebooks/run_global_external_regressors_daily.py @@ -14,7 +14,7 @@ # COMMAND ---------- -from forecasting_sa import run_forecast +from mmf_sa import run_forecast import logging logger = spark._jvm.org.apache.log4j logging.getLogger("py4j.java_gateway").setLevel(logging.ERROR) diff --git a/notebooks/run_global_monthly.py b/notebooks/run_global_monthly.py index 5989228..d8f23d3 100644 --- a/notebooks/run_global_monthly.py +++ b/notebooks/run_global_monthly.py @@ -14,7 +14,7 @@ # COMMAND ---------- -from forecasting_sa import run_forecast +from mmf_sa import run_forecast import logging logger = spark._jvm.org.apache.log4j logging.getLogger("py4j.java_gateway").setLevel(logging.ERROR) diff --git a/pyproject.toml b/pyproject.toml index b0a40b1..36702e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "forecasting_sa" +name = "mmf_sa" version = "0.0.1" dependencies = [ "rpy2", @@ -38,7 +38,7 @@ build-backend = "hatchling.build" [tool.hatch.build] include = [ - "forecasting_sa/", + "mmf_sa/", ] exclude = [ "/tests", diff --git a/tests/integration_test.py b/tests/integration_test.py index ef337cc..6675a37 100644 --- a/tests/integration_test.py +++ b/tests/integration_test.py @@ -19,7 +19,7 @@ import pathlib import pandas as pd from datasetsforecast.m4 import M4 -from forecasting_sa import run_forecast +from mmf_sa import run_forecast # COMMAND ---------- diff --git a/tests/unit/test_exogenous_regressors_pipeline.py b/tests/unit/test_exogenous_regressors_pipeline.py index acaf4d5..0493241 100644 --- a/tests/unit/test_exogenous_regressors_pipeline.py +++ b/tests/unit/test_exogenous_regressors_pipeline.py @@ -1,7 +1,7 @@ import pandas as pd import pytest -from forecasting_sa.models import ModelRegistry +from mmf_sa.models import ModelRegistry from omegaconf import OmegaConf from .fixtures import m4_df_exogenous diff --git a/tests/unit/test_pipelines.py b/tests/unit/test_pipelines.py index cfb842a..0b37497 100644 --- a/tests/unit/test_pipelines.py +++ b/tests/unit/test_pipelines.py @@ -1,6 +1,6 @@ import mlflow import datetime -from forecasting_sa import run_forecast +from mmf_sa import run_forecast from .fixtures import temp_dir, spark_session, m4_df, m4_df_exogenous diff --git a/tests/unit/test_sktime_pipeline.py b/tests/unit/test_sktime_pipeline.py index fa9a670..b82dc7e 100644 --- a/tests/unit/test_sktime_pipeline.py +++ b/tests/unit/test_sktime_pipeline.py @@ -1,7 +1,7 @@ import pandas as pd import pytest -from forecasting_sa.models import ModelRegistry +from mmf_sa.models import ModelRegistry from omegaconf import OmegaConf from .fixtures import m4_df