code: def predict(
      self,
      n: int,
      series: Optional[TimeSeries] = None,
      future_covariates: Optional[TimeSeries] = None,
      num_samples: int = 1,
      verbose: bool = False,
      show_warnings: bool = True,
      **kwargs,
  ) -> TimeSeries:
      # we override `predict()` to pass a non-None `series`, so that historic_future_covariates
      # will be passed to `_predict()`
      series = series if series is not None else self.training_series
      return super().predict(
          n, series, future_covariates, num_samples, **kwargs
      )
  
file_path: darts/darts/models/forecasting/kalman_forecaster.py
imports: from typing import Optional
  import numpy
  from nfoursid.kalman import Kalman
  from darts.logging import get_logger
  from darts.models.filtering.kalman_filter import KalmanFilter
  from darts.models.forecasting.forecasting_model import TransferableFutureCovariatesLocalForecastingModel
  from darts.timeseries import TimeSeries
label_desc: Use image node_id 3 for calling the KalmanForecaster obj's underlying member method code with example usage: obj.predict(n, series, future_covariates, num_samples, verbose, show_warnings) and returns: super