docstr: Makes forecast at each step of the given horizon.
  
  Parameters
  ----------
  horizon
      The number of steps ahead to forecast.
  xs
      The set of optional additional features. If given, then it's length should be equal to
      the horizon.
docstr_tok: ["Makes","forecast","at","each","step","of","the","given","horizon",".","Parameters","--","--","--","--","--","horizon","The","number","of","steps","ahead","to","forecast",".","xs","The","set","of","optional","additional","features",".","If","given",",","then","it","'s","length","should","be","equal","to","the","horizon","."]
code: def forecast(
      self, horizon: int, xs: list[dict] | None = None
  ) -> list:
      """Makes forecast at each step of the given horizon.
  
      Parameters
      ----------
      horizon
          The number of steps ahead to forecast.
      xs
          The set of optional additional features. If given, then it's length should be equal to
          the horizon.
  
      """
  
file_path: river/river/time_series/base.py
imports: from __future__ import annotations
  import abc
  from river import base
label_desc: Use image node_id 3 for calling the Forecaster obj's underlying member method code with example usage: obj.forecast(horizon, xs) without return types