diff --git a/nbs/src/core/core.ipynb b/nbs/src/core/core.ipynb index a3f17bc80..7f7c1d37b 100644 --- a/nbs/src/core/core.ipynb +++ b/nbs/src/core/core.ipynb @@ -1050,7 +1050,8 @@ " self.fallback_model = fallback_model\n", " self.verbose = verbose\n", "\n", - " __init__.__doc__ = __init__.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(__init__, '__doc__'):\n", + " __init__.__doc__ = __init__.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", " \n", " def _validate_model_names(self):\n", " # Some test models don't have alias\n", @@ -1154,7 +1155,8 @@ " self.fitted_ = self._fit_parallel()\n", " return self\n", "\n", - " fit.__doc__ = fit.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(fit, '__doc__'):\n", + " fit.__doc__ = fit.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", "\n", " def _make_future_df(self, h: int):\n", " start_dates = ufp.offset_times(self.last_dates, freq=self.freq, n=1)\n", @@ -1228,7 +1230,8 @@ " fcsts_df[cols] = fcsts\n", " return fcsts_df\n", "\n", - " predict.__doc__ = predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(predict, '__doc__'):\n", + " predict.__doc__ = predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", " \n", " def fit_predict(\n", " self,\n", @@ -1283,7 +1286,8 @@ " fcsts_df[cols] = fcsts\n", " return fcsts_df\n", "\n", - " fit_predict.__doc__ = fit_predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(fit_predict, '__doc__'):\n", + " fit_predict.__doc__ = fit_predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", " \n", " def forecast(\n", " self,\n", @@ -1357,7 +1361,8 @@ " self.forecast_times_ = res_fcsts['times']\n", " return fcsts_df\n", "\n", - " forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(forecast, '__doc__'):\n", + " forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", " \n", " def forecast_fitted_values(self):\n", " \"\"\"Access insample predictions.\n", @@ -1507,7 +1512,8 @@ " fcsts_df = ufp.assign_columns(fcsts_df, res_fcsts[\"cols\"], res_fcsts[\"forecasts\"])\n", " return fcsts_df\n", "\n", - " cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(cross_validation, '__doc__'):\n", + " cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", "\n", " def cross_validation_fitted_values(self) -> DataFrame:\n", " \"\"\"Access insample cross validated predictions.\n", @@ -1875,7 +1881,8 @@ " def __repr__(self):\n", " return f\"StatsForecast(models=[{','.join(map(repr, self.models))}])\"\n", "\n", - "_StatsForecast.plot.__doc__ = _StatsForecast.plot.__doc__.format(**_param_descriptions) # type: ignore[union-attr]" + "if hasattr(_StatsForecast.plot, '__doc__'):\n", + " _StatsForecast.plot.__doc__ = _StatsForecast.plot.__doc__.format(**_param_descriptions) # type: ignore[union-attr]" ] }, { diff --git a/nbs/src/core/distributed.fugue.ipynb b/nbs/src/core/distributed.fugue.ipynb index a8dc3a4b1..edea0c8b4 100644 --- a/nbs/src/core/distributed.fugue.ipynb +++ b/nbs/src/core/distributed.fugue.ipynb @@ -450,7 +450,8 @@ " )\n", " return res\n", "\n", - " forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(forecast, '__doc__'):\n", + " forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", "\n", " def forecast_fitted_values(self):\n", " \"\"\"Retrieve in-sample predictions\"\"\"\n", @@ -603,7 +604,8 @@ " **self._transform_kwargs,\n", " )\n", "\n", - " cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", + " if hasattr(cross_validation, '__doc__'):\n", + " cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr]\n", "\n", "\n", "@make_backend.candidate(lambda obj, *args, **kwargs: isinstance(obj, ExecutionEngine))\n", diff --git a/python/statsforecast/core.py b/python/statsforecast/core.py index 0d35b2a02..cb63e4d3b 100644 --- a/python/statsforecast/core.py +++ b/python/statsforecast/core.py @@ -1,3 +1,5 @@ +"""Methods for Fit, Predict, Forecast (fast), Cross Validation and plotting""" + # AUTOGENERATED! DO NOT EDIT! File to edit: ../../nbs/src/core/core.ipynb. # %% auto 0 @@ -561,7 +563,8 @@ def __init__( self.fallback_model = fallback_model self.verbose = verbose - __init__.__doc__ = __init__.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(__init__, "__doc__"): + __init__.__doc__ = __init__.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def _validate_model_names(self): # Some test models don't have alias @@ -669,7 +672,8 @@ def fit( self.fitted_ = self._fit_parallel() return self - fit.__doc__ = fit.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(fit, "__doc__"): + fit.__doc__ = fit.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def _make_future_df(self, h: int): start_dates = ufp.offset_times(self.last_dates, freq=self.freq, n=1) @@ -753,7 +757,8 @@ def predict( fcsts_df[cols] = fcsts return fcsts_df - predict.__doc__ = predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(predict, "__doc__"): + predict.__doc__ = predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def fit_predict( self, @@ -814,7 +819,8 @@ def fit_predict( fcsts_df[cols] = fcsts return fcsts_df - fit_predict.__doc__ = fit_predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(fit_predict, "__doc__"): + fit_predict.__doc__ = fit_predict.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def forecast( self, @@ -888,7 +894,8 @@ def forecast( self.forecast_times_ = res_fcsts["times"] return fcsts_df - forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(forecast, "__doc__"): + forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def forecast_fitted_values(self): """Access insample predictions. @@ -1048,7 +1055,8 @@ def cross_validation( ) return fcsts_df - cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(cross_validation, "__doc__"): + cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def cross_validation_fitted_values(self) -> DataFrame: """Access insample cross validated predictions. @@ -1430,7 +1438,8 @@ def __repr__(self): return f"StatsForecast(models=[{','.join(map(repr, self.models))}])" -_StatsForecast.plot.__doc__ = _StatsForecast.plot.__doc__.format(**_param_descriptions) # type: ignore[union-attr] +if hasattr(_StatsForecast.plot, "__doc__"): + _StatsForecast.plot.__doc__ = _StatsForecast.plot.__doc__.format(**_param_descriptions) # type: ignore[union-attr] # %% ../../nbs/src/core/core.ipynb 29 class ParallelBackend: diff --git a/python/statsforecast/distributed/fugue.py b/python/statsforecast/distributed/fugue.py index 35a16857d..327501ea1 100644 --- a/python/statsforecast/distributed/fugue.py +++ b/python/statsforecast/distributed/fugue.py @@ -390,7 +390,8 @@ def forecast( ) return res - forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(forecast, "__doc__"): + forecast.__doc__ = forecast.__doc__.format(**_param_descriptions) # type: ignore[union-attr] def forecast_fitted_values(self): """Retrieve in-sample predictions""" @@ -543,7 +544,8 @@ def cross_validation( **self._transform_kwargs, ) - cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr] + if hasattr(cross_validation, "__doc__"): + cross_validation.__doc__ = cross_validation.__doc__.format(**_param_descriptions) # type: ignore[union-attr] @make_backend.candidate(lambda obj, *args, **kwargs: isinstance(obj, ExecutionEngine))