code: def build_fixed_effects(
      num_steps,
      seasonal_structure=None,
      covariates=None,
      dtype=tf.float32,
  ):
      """Builds a design matrix treating seasonality as fixed-effects regression."""
      if seasonal_structure is None:
          seasonal_structure = {}
      if seasonal_structure:
          design_matrix = ps.concat(
              [
                  _design_matrix_for_one_seasonal_effect(
                      num_steps,
                      seasonal_effect.duration,
                      seasonal_effect.num,
                      dtype,
                  )
                  for seasonal_effect in seasonal_structure.values()
              ],
              axis=-1,
          )
      else:
          design_matrix = ps.ones([num_steps, 1], dtype=dtype)
  
      if covariates:
          design_matrix = ps.concat(
              [design_matrix]
              + [
                  tf.convert_to_tensor(x)[..., :num_steps, :]
                  for x in covariates
              ],
              axis=-1,
          )
      return design_matrix
  
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 4 for calling a global function with example usage: build_fixed_effects(num_steps, seasonal_structure, covariates, dtype) and returns: design_matrix