code: def select_target(n_clicks, filename, feat_names, exog_names):
      options = []
      ctx = dash.callback_context
      prop_id = ctx.triggered_id
      if prop_id == "forecasting-select-target-parent":
          if filename is not None:
              file_path = os.path.join(
                  file_manager.data_directory, filename
              )
              df = ForecastModel().load_data(file_path, nrows=2)
              forbidden = (feat_names or []) + (exog_names or [])
              options += [
                  {"label": s, "value": s}
                  for s in df.columns
                  if s not in forbidden
              ]
      return options
  
file_path: merlion/merlion/dashboard/callbacks/forecast.py
imports: import logging
  import os
  import traceback
  import dash
  from dash import Input, Output, State, dcc, callback
  from merlion.dashboard.utils.file_manager import FileManager
  from merlion.dashboard.models.forecast import ForecastModel
  from merlion.dashboard.pages.utils import create_param_table, create_metric_table, create_empty_figure
label_desc: Use image node_id 3 for calling a global function with example usage: select_target(n_clicks, filename, feat_names, exog_names) and returns: options