class_docstr: Base forecaster template class.
  
  The base forecaster specifies the methods and method signatures that all forecasters
  have to implement.
  
  Specific implementations of these methods is deferred to concrete forecasters.
class_docstr_tok: ["Base","forecaster","template","class",".","The","base","forecaster","specifies","the","methods","and","method","signatures","that","all","forecasters","have","to","implement",".","Specific","implementations","of","these","methods","is","deferred","to","concrete","forecasters","."]
docstr: Forecasting horizon that was passed.
docstr_tok: ["Forecasting","horizon","that","was","passed","."]
code: def fh(self):
      """Forecasting horizon that was passed."""
      # raise error if some method tries to accessed it before it has been set
      if self._fh is None:
          raise ValueError(
              f"No `fh` has been set yet, in this instance of "
              f"{self.__class__.__name__}, "
              "please specify `fh` in `fit` or `predict`"
          )
  
      return self._fh
  
imports: from copy import deepcopy
  from itertools import product
  import numpy
  import pandas
  from sktime.base import BaseEstimator
  from sktime.datatypes import VectorizedDF, check_is_scitype, convert_to, get_cutoff, mtype_to_scitype, scitype_to_mtype, update_data
  from sktime.forecasting.base._fh import ForecastingHorizon
  from sktime.utils.datetime import _shift
  from sktime.utils.validation._dependencies import _check_estimator_deps
  from sktime.utils.validation.forecasting import check_alpha, check_cv, check_fh, check_X
  from sktime.utils.validation.series import check_equal_time_index
  from sktime.utils.warnings import warn
label_desc: Use image node_id 27 for calling the BaseForecaster obj's underlying member method code with example usage: obj.fh() and returns: self