code: def get_changepoint_dates_from_changepoints_dict(
      changepoints_dict, df=None, time_col=None
  ):
      """Gets the changepoint dates from ``changepoints_dict``
  
      Parameters
      ----------
      changepoints_dict : `dict` or `None`
          The ``changepoints_dict`` which is compatible with
          `~greykite.algo.forecast.silverkite.forecast_silverkite.SilverkiteForecast.forecast`
      df : `pandas.DataFrame` or `None`, default `None`
          The data df to put changepoints on.
      time_col : `str` or `None`, default `None`
          The column name of time column in ``df``.
  
      Returns
      -------
      changepoint_dates : `list`
          List of changepoint dates.
      """
      if (
          changepoints_dict is None
          or "method" not in changepoints_dict.keys()
          or changepoints_dict["method"]
          not in ["auto", "uniform", "custom"]
      ):
          return None
      method = changepoints_dict["method"]
      if method == "custom":
          # changepoints_dict["dates"] is `Iterable`, converts to list
          changepoint_dates = list(changepoints_dict["dates"])
      elif method == "uniform":
          if df is None or time_col is None:
              raise ValueError(
                  "When the method of ``changepoints_dict`` is 'uniform', ``df`` and "
                  "``time_col`` must be provided."
              )
          changepoint_dates = get_evenly_spaced_changepoints_dates(
              df=df,
              time_col=time_col,
              n_changepoints=changepoints_dict["n_changepoints"],
          )
          # the output is `pandas.Series`, converts to list
          changepoint_dates = changepoint_dates.tolist()[1:]
      else:
          raise ValueError(
              "The method of ``changepoints_dict`` can not be 'auto'. "
              "Please specify or detect change points first."
          )
      return changepoint_dates
  
imports: import math
  from datetime import datetime
  from datetime import timedelta
  import numpy
  import pandas
  import pytz
  from holidays_ext import get_holidays
  from pandas.tseries.frequencies import to_offset
  from scipy.special import expit
  from greykite.common import constants
  from greykite.common.python_utils import split_offset_str
label_desc: Use image node_id 24 for calling a global function with example usage: get_changepoint_dates_from_changepoints_dict(changepoints_dict, df, time_col) and returns: changepoint_dates, None