class_docstr: Class used for filling in the gaps in time series
  
  Args:
      gap_value: value, which mask gap elements in array
      pipeline: TsForecastingPipeline object for filling in the gaps
class_docstr_tok: ["Class","used","for","filling","in","the","gaps","in","time","series","Args",":","gap_value",":","value",",","which","mask","gap","elements","in","array","pipeline",":","TsForecastingPipeline","object","for","filling","in","the","gaps"]
docstr: Make forecast for desired part of time series with gap
  
  Args:
      pipeline: pipeline for forecasting
      timeseries_train_part: part of time series without gaps to fit pipeline
      output_data: array with gaps (some og them may be filled previously)
      gap: indices of continuous batch (gap)
  
  Returns:
      predicted values
docstr_tok: ["Make","forecast","for","desired","part","of","time","series","with","gap","Args",":","pipeline",":","pipeline","for","forecasting","timeseries_train_part",":","part","of","time","series","without","gaps","to","fit","pipeline","output_data",":","array","with","gaps","(","some","og","them","may","be","filled","previously",")","gap",":","indices","of","continuous","batch","(","gap",")","Returns",":","predicted","values"]
code: def __forecast_in_gap(
      self, pipeline, timeseries_train_part, output_data, gap
  ):
      """Make forecast for desired part of time series with gap
  
      Args:
          pipeline: pipeline for forecasting
          timeseries_train_part: part of time series without gaps to fit pipeline
          output_data: array with gaps (some og them may be filled previously)
          gap: indices of continuous batch (gap)
  
      Returns:
          predicted values
      """
  
      train_ts_len = len(timeseries_train_part) - len(gap)
      if train_ts_len < self.min_train_ts_length:
          # Take part with gap [..., gap, gap, known_value]
          gap_part = output_data[: gap[-1] + 2]
  
          # Use linear interpolation - get full time series
          interpolated_part = self.linear_interpolation(gap_part)
          predicted = interpolated_part[gap]
      else:
          # Pipeline for the task of filling in gaps
          predicted = self.__pipeline_fit_predict(
              pipeline, timeseries_train_part, len(gap)
          )
  
      return predicted
  
imports: from copy import deepcopy
  from typing import List, Union
  import numpy
  from golem.core.log import default_log
  from scipy import interpolate
  from fedot.core.data.data import InputData
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.tasks import Task, TaskTypesEnum, TsForecastingParams
label_desc: Use image node_id 7 for calling the ModelGapFiller obj's underlying member method code with example usage: obj.__forecast_in_gap(pipeline, timeseries_train_part, output_data, gap) and returns: predicted