code: def create_seasonal_structure(frequency, num_steps, min_cycles=2):
      """Creates a set of suitable seasonal structures for a time series.
  
      Args:
        frequency: a Pandas `pd.DateOffset` instance.
        num_steps: Python `int` number of steps at the given frequency.
        min_cycles: Python `int` minimum number of cycles to include an effect.
      Returns:
        A dictionary of SeasonConversion instances representing different
        seasonal components.
  
      Example 1: For data.index.freq: pd.DateOffset(hours=1)
      Seasonal components:
      {
        SeasonTypes.HOUR_OF_DAY: SeasonConversion(num=24, duration=1),
        SeasonTypes.DAY_OF_WEEK: SeasonConversion(num=7, duration=24)
      }
  
      Example 2: For data.index.freq: pd.DateOffset(seconds=30)
      Seasonal components:
      {
        SeasonTypes.SECOND_OF_MINUTE: SeasonConversion(num=2, duration=1),
        SeasonTypes.MINUTE_OF_HOUR: SeasonConversion(num=60, duration=2),
        SeasonTypes.HOUR_OF_DAY: SeasonConversion(num=24, duration=120),
        SeasonTypes.DAY_OF_WEEK: SeasonConversion(num=7, duration=2880)
      }
  
      If the frequency is N times per year, for integer 2 <= N <= 12 (e.g.,
      12 for monthly or 4 for quarterly), then a fixed structure of (N, 1)
      will be created.
  
      """
      num_periods = periods_per_year(frequency)
      if num_periods is not None:
          # Fixed structure for monthly or quarterly data.
          return {
              SeasonTypes.MONTH_OF_YEAR: SeasonConversion(
                  num=num_periods, duration=1
              )
          }
  
      # Compute seasonal components by cycling through _SEASONAL_PROTOTYPES and
      # filter out None components.
      components = {  # pylint: disable=g-complex-comprehension
          k: make_component(
              v,
              frequency=frequency,
              num_steps=num_steps,
              min_cycles=min_cycles,
          )
          for k, v in _SEASONAL_PROTOTYPES.items()
      }
      return {k: v for (k, v) in components.items() if v is not None}
  
file_path: probability/tensorflow_probability/python/sts/internal/seasonality_util.py
imports: import collections
  import enum
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import prefer_static
label_desc: Use image node_id 1 for calling a global function with example usage: create_seasonal_structure(frequency, num_steps, min_cycles) and returns: unknown, dict