code: def __post_init__(self):
      self.forecast_keys = ["mean"]
      self.statsforecast_keys = ["mean"]
      if self.quantile_levels is None:
          self.intervals = None
          return
  
      intervals = set()
  
      for quantile_level in self.quantile_levels:
          interval = round(
              200 * (max(quantile_level, 1 - quantile_level) - 0.5)
          )
          intervals.add(interval)
          side = "hi" if quantile_level > 0.5 else "lo"
          self.forecast_keys.append(str(quantile_level))
          self.statsforecast_keys.append(f"{side}-{interval}")
  
      self.intervals = sorted(intervals)
  
imports: from dataclasses import dataclass, field
  from typing import List, Optional, Type
  import numpy
  from statsforecast.models import ADIDA, AutoARIMA, AutoCES, AutoETS, AutoTheta, CrostonClassic, CrostonOptimized, CrostonSBA, DynamicOptimizedTheta, DynamicTheta, HistoricAverage, Holt, HoltWinters, IMAPA, MSTL, Naive, OptimizedTheta, RandomWalkWithDrift, SeasonalExponentialSmoothing, SeasonalExponentialSmoothingOptimized, SeasonalNaive, SeasonalWindowAverage, SimpleExponentialSmoothing, SimpleExponentialSmoothingOptimized, TSB, Theta, WindowAverage
  from gluonts.core.component import validated
  from gluonts.dataset import DataEntry
  from gluonts.dataset.util import forecast_start
  from gluonts.model.predictor import RepresentablePredictor
  from gluonts.model.forecast import QuantileForecast
label_desc: Use image node_id 1 for calling the ModelConfig obj's underlying member method code with example usage: obj.__post_init__() without return types