code: def find_missing_dates(timestamp_series):
      """Identifies any gaps in pandas Series containing timestamps
      Timestamps are assumed to be in sorted order
      :return: pd.DataFrame with dates of the gaps in the time series, if any
      """
      timestamp_series = timestamp_series.sort_values(
          ascending=True, inplace=False
      )  # don't modify original
      delta = timestamp_series.diff()[1:].fillna(
          pd.Timedelta(seconds=0)
      )
      delta_sec = delta.values / np.timedelta64(1, "s")
      min_gap = min(delta_sec)
  
      # dates surrounding the gap
      gap_start_points = timestamp_series[:-1][
          delta_sec > min_gap
      ].reset_index(drop=True)
      gap_end_points = timestamp_series[1:][
          delta_sec > min_gap
      ].reset_index(drop=True)
      # size of the gaps, in periods
      gap_periods = pd.Series(
          (delta_sec[delta_sec > min_gap] / min_gap) - 1
      )
      gaps = pd.concat(
          [gap_start_points, gap_end_points, gap_periods],
          axis=1,
          ignore_index=True,
      )
      gaps.columns = ["right_before_gap", "right_after_gap", "gap_size"]
      return gaps
  
file_path: greykite/greykite/common/time_properties.py
imports: import datetime
  import warnings
  from typing import Dict
  from typing import List
  from typing import Optional
  from typing import Union
  import numpy
  import pandas
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.features.adjust_anomalous_data import adjust_anomalous_data
  from greykite.common.logging import LoggingLevelEnum
  from greykite.common.logging import log_message
label_desc: Use image node_id 3 for calling a global function with example usage: find_missing_dates(timestamp_series) and returns: gaps