code: def pipeline_with_level(series, X_df, n_series, horizon):
      models = [AutoARIMA(season_length=7)]
      sf = StatsForecast(
          models=models,
          freq="D",
      )
      forecast = fa.as_pandas(
          sf.forecast(df=series, h=horizon, X_df=X_df, level=[80, 90])
      )
      print(forecast.columns)
      expected = [
          "unique_id",
          "ds",
          "AutoARIMA",
          "AutoARIMA-lo-90",
          "AutoARIMA-hi-90",
          "AutoARIMA-lo-80",
          "AutoARIMA-hi-80",
      ]
      assert forecast.shape == (n_series * horizon, len(expected))
  
      n_windows = 2
      cv = fa.as_pandas(
          sf.cross_validation(
              df=series, n_windows=n_windows, h=horizon, level=[80]
          )
      )
      assert cv.shape[0] == n_series * n_windows * horizon
      assert cv.columns.tolist() == [
          "unique_id",
          "ds",
          "cutoff",
          "y",
          "AutoARIMA",
          "AutoARIMA-lo-80",
          "AutoARIMA-hi-80",
      ]
  
imports: import fugue.api
  import pandas
  from statsforecast.core import StatsForecast
  from statsforecast.models import ADIDA, AutoARIMA, ARIMA, CrostonClassic, CrostonOptimized, CrostonSBA, AutoETS, HistoricAverage, IMAPA, Naive, RandomWalkWithDrift, SeasonalExponentialSmoothing, SeasonalNaive, SeasonalWindowAverage, SimpleExponentialSmoothing, TSB, WindowAverage
label_desc: Use image node_id 2 for calling a global function with example usage: pipeline_with_level(series, X_df, n_series, horizon) without return types