in python/prophet/diagnostics.py [0:0]
def prophet_copy(m, cutoff=None):
"""Copy Prophet object
Parameters
----------
m: Prophet model.
cutoff: pd.Timestamp or None, default None.
cuttoff Timestamp for changepoints member variable.
changepoints are only retained if 'changepoints <= cutoff'
Returns
-------
Prophet class object with the same parameter with model variable
"""
if m.history is None:
raise Exception('This is for copying a fitted Prophet object.')
if m.specified_changepoints:
changepoints = m.changepoints
if cutoff is not None:
# Filter change points '< cutoff'
last_history_date = max(m.history['ds'][m.history['ds'] <= cutoff])
changepoints = changepoints[changepoints < last_history_date]
else:
changepoints = None
# Auto seasonalities are set to False because they are already set in
# m.seasonalities.
m2 = m.__class__(
growth=m.growth,
n_changepoints=m.n_changepoints,
changepoint_range=m.changepoint_range,
changepoints=changepoints,
yearly_seasonality=False,
weekly_seasonality=False,
daily_seasonality=False,
holidays=m.holidays,
seasonality_mode=m.seasonality_mode,
seasonality_prior_scale=m.seasonality_prior_scale,
changepoint_prior_scale=m.changepoint_prior_scale,
holidays_prior_scale=m.holidays_prior_scale,
mcmc_samples=m.mcmc_samples,
interval_width=m.interval_width,
uncertainty_samples=m.uncertainty_samples,
stan_backend=(
m.stan_backend.get_type() if m.stan_backend is not None
else None
),
)
m2.extra_regressors = deepcopy(m.extra_regressors)
m2.seasonalities = deepcopy(m.seasonalities)
m2.country_holidays = deepcopy(m.country_holidays)
return m2