class_docstr: TimeSequence feature engineering
docstr: Used only in pipeline predict, after calling self.transform(input_df, is_train=False).
  Post_processing includes converting the predicted array into data frame and scalar inverse
  transform.
  :param input_df: a list of data frames or one data frame.
  :param y_pred: Model prediction result (ndarray).
  :param is_train: indicate the output is used to evaluation or prediction.
  :return:
   In validation mode (is_train=True), return the unscaled y_pred and rolled input_y.
   In test mode (is_train=False) return unscaled data frame(s) in the format of
    {datetime_col} | {target_col(s)}.
docstr_tok: ["Used","only","in","pipeline","predict",",","after","calling","self.transform","(","input_df",",","is_train=False",")",".","Post_processing","includes","converting","the","predicted","array","into","data","frame","and","scalar","inverse","transform",".",":","param","input_df",":","a","list","of","data","frames","or","one","data","frame",".",":","param","y_pred",":","Model","prediction","result","(","ndarray",")",".",":","param","is_train",":","indicate","the","output","is","used","to","evaluation","or","prediction",".",":","return",":","In","validation","mode","(","is_train=True",")",",","return","the","unscaled","y_pred","and","rolled","input_y",".","In","test","mode","(","is_train=False",")","return","unscaled","data","frame","(","s",")","in","the","format","of","{","datetime_col","}","|","{","target_col","(","s",")","}","."]
code: def post_processing(self, input_df, y_pred, is_train):
      """
      Used only in pipeline predict, after calling self.transform(input_df, is_train=False).
      Post_processing includes converting the predicted array into data frame and scalar inverse
      transform.
      :param input_df: a list of data frames or one data frame.
      :param y_pred: Model prediction result (ndarray).
      :param is_train: indicate the output is used to evaluation or prediction.
      :return:
       In validation mode (is_train=True), return the unscaled y_pred and rolled input_y.
       In test mode (is_train=False) return unscaled data frame(s) in the format of
        {datetime_col} | {target_col(s)}.
      """
      from bigdl.nano.utils.common import invalidInputError
  
      y_pred_unscale = self._unscale(y_pred)
      if is_train:
          # return unscaled y_pred (ndarray) and y (ndarray).
          if isinstance(input_df, list):
              y_unscale_list = []
              for df in input_df:
                  _, y_unscale = self._roll_train(
                      df[self.target_col],
                      self.past_seq_len,
                      self.future_seq_len,
                  )
                  y_unscale_list.append(y_unscale)
              output_y_unscale = np.concatenate(y_unscale_list, axis=0)
          else:
              _, output_y_unscale = self._roll_train(
                  input_df[self.target_col],
                  self.past_seq_len,
                  self.future_seq_len,
              )
          return output_y_unscale, y_pred_unscale
  
      else:
          # return data frame or a list of data frames.
          if isinstance(input_df, list):
              y_pred_dt_df_list = self._get_y_pred_dt_df(
                  input_df, self.past_seq_len
              )
              y_pred_df_list = []
              y_pred_st_loc = 0
              for y_pred_dt_df in y_pred_dt_df_list:
                  df = self._get_y_pred_df(
                      y_pred_dt_df,
                      y_pred_unscale[
                          y_pred_st_loc : y_pred_st_loc
                          + len(y_pred_dt_df)
                      ],
                  )
                  y_pred_st_loc = y_pred_st_loc + len(y_pred_dt_df)
                  y_pred_df_list.append(df)
                  invalidInputError(
                      y_pred_st_loc == len(y_pred_unscale),
                      "y_pred_st_loc should match len(y_pred_unscale)",
                  )
              return y_pred_df_list
          else:
              y_pred_dt_df = self._get_y_pred_dt_df(
                  input_df, self.past_seq_len
              )
              y_pred_df = self._get_y_pred_df(
                  y_pred_dt_df, y_pred_unscale
              )
              return y_pred_df
  
imports: from bigdl.chronos.autots.deprecated.feature.utils import save_config
  from bigdl.chronos.autots.deprecated.feature.abstract import BaseFeatureTransformer
  from bigdl.chronos.utils import deprecated
  import sklearn
  from sklearn.preprocessing import StandardScaler
  import pandas
  import numpy
  import json
  from packaging import version
label_desc: Use image node_id 9 for calling the TimeSequenceFeatureTransformer obj's underlying member method code with example usage: obj.post_processing(input_df, y_pred, is_train) and returns: output_y_unscale,  y_pred_unscale, y_pred_df_list, y_pred_df