code: def forecast_config_info_daily():
      """Generates ``forecast_config`` for testing."""
      metadata = MetadataParam(
          time_col=TIME_COL,
          value_col=VALUE_COL,
          train_end_date=None,
          anomaly_info=None,
      )
  
      evaluation_period = EvaluationPeriodParam(
          test_horizon=0, cv_max_splits=0
      )
  
      model_components = ModelComponentsParam(
          autoregression={
              "autoreg_dict": {
                  "lag_dict": {"orders": [7]},
                  "agg_lag_dict": None,
              }
          },
          events={
              "auto_holiday": False,
              "holiday_lookup_countries": ["US"],
              "holiday_pre_num_days": 2,
              "holiday_post_num_days": 2,
              "daily_event_df_dict": None,
          },
          custom={
              "extra_pred_cols": ["dow"],
              "min_admissible_value": 0,
              "normalize_method": "zero_to_one",
          },
      )
  
      return ForecastConfig(
          model_template="SILVERKITE_EMPTY",
          metadata_param=metadata,
          coverage=None,
          evaluation_period_param=evaluation_period,
          forecast_horizon=1,
          model_components_param=model_components,
      )
  
imports: import datetime
  import inspect
  import sys
  from collections import OrderedDict
  import dill
  import numpy
  import pandas
  import pytest
  from patsy.desc import Term
  from greykite.common.constants import ACTUAL_COL
  from greykite.common.constants import ANOMALY_COL
  from greykite.common.constants import PREDICTED_ANOMALY_COL
  from greykite.common.constants import PREDICTED_COL
  from greykite.common.constants import PREDICTED_LOWER_COL
  from greykite.common.constants import PREDICTED_UPPER_COL
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils_anomalies import contaminate_df_with_anomalies
  from greykite.common.viz.timeseries_annotate import plot_anomalies_over_forecast_vs_actual
  from greykite.detection.common.ad_evaluation import f1_score
  from greykite.detection.common.ad_evaluation import precision_score
  from greykite.detection.common.ad_evaluation import recall_score
  from greykite.detection.common.pickler import GreykitePickler
  from greykite.detection.detector.ad_utils import partial_return
  from greykite.detection.detector.config import ADConfig
  from greykite.detection.detector.constants import FIG_SHOW
  from greykite.detection.detector.data import DetectorData
  from greykite.detection.detector.greykite import DETECTOR_PREDICT_COLS
  from greykite.detection.detector.greykite import GreykiteDetector
  from greykite.detection.detector.reward import Reward
  from greykite.framework.templates.autogen.forecast_config import ComputationParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationPeriodParam
  from greykite.framework.templates.autogen.forecast_config import ForecastConfig
  from greykite.framework.templates.autogen.forecast_config import MetadataParam
  from greykite.framework.templates.autogen.forecast_config import ModelComponentsParam
  from greykite.framework.templates.forecaster import Forecaster
  from greykite.framework.templates.model_templates import ModelTemplateEnum
  from greykite.framework.utils.result_summary import summarize_grid_search_results
label_desc: Use image node_id 2 for calling a global function with example usage: forecast_config_info_daily() and returns: ForecastConfig