code: def _fit(
      self,
      series: TimeSeries,
      future_covariates: Optional[TimeSeries] = None,
  ):
      super()._fit(series, future_covariates)
      self._assert_univariate(series)
      series = self.training_series
  
      if future_covariates is not None:
          # perform OLS and get in-sample residuals
          linreg = LinearRegressionModel(lags_future_covariates=[0])
          linreg.fit(series, future_covariates=future_covariates)
          fitted_values = linreg.model.predict(
              X=future_covariates.slice_intersect(series).values(
                  copy=False
              )
          )
          fitted_values_ts = TimeSeries.from_times_and_values(
              times=series.time_index, values=fitted_values
          )
          resids = series - fitted_values_ts
          self._linreg = linreg
          target = resids
      else:
          target = series
  
      self.model.fit(
          target.values(copy=False).flatten(),
      )
      return self
  
file_path: darts/darts/models/forecasting/sf_auto_ets.py
imports: from typing import Optional
  from statsforecast.models import AutoETS
  from darts import TimeSeries
  from darts.models import LinearRegressionModel
  from darts.models.components.statsforecast_utils import create_normal_samples, one_sigma_rule, unpack_sf_dict
  from darts.models.forecasting.forecasting_model import FutureCovariatesLocalForecastingModel
label_desc: Use image node_id 2 for calling the StatsForecastAutoETS obj's underlying member method code with example usage: obj._fit(series, future_covariates) and returns: self