code: def generate_series(
      n_series: int,
      freq: str = "D",
      min_length: int = 50,
      max_length: int = 500,
      n_static_features: int = 0,
      equal_ends: bool = False,
      engine: str = "pandas",
      seed: int = 0,
  ) -> DataFrame:
      """Generate Synthetic Panel Series.
  
      Generates `n_series` of frequency `freq` of different lengths in the interval [`min_length`, `max_length`].
      If `n_static_features > 0`, then each series gets static features with random values.
      If `equal_ends == True` then all series end at the same date.
  
      Parameters
      ----------
      n_series : int
          Number of series for synthetic panel.
      freq : str (default='D')
          Frequency of the data, 'D' or 'M'.
      min_length : int (default=50)
          Minimum length of synthetic panel's series.
      max_length : int (default=500)
          Maximum length of synthetic panel's series.
      n_static_features : int (default=0)
          Number of static exogenous variables for synthetic panel's series.
      equal_ends : bool (default=False)
          Series should end in the same date stamp `ds`.
      engine : str (default='pandas')
          Output Dataframe type ('pandas' or 'polars').
      seed : int (default=0)
          Random seed used for generating the data.
  
      Returns
      -------
      pandas or polars DataFrame
          Synthetic panel with columns [`unique_id`, `ds`, `y`] and exogenous.
      """
      return utils_generate_series(
          n_series=n_series,
          freq=freq,
          min_length=min_length,
          max_length=max_length,
          n_static_features=n_static_features,
          equal_ends=equal_ends,
          engine=engine,
          seed=seed,
      )
  
file_path: statsforecast/statsforecast/utils.py
imports: from typing import Dict
  import math
  import os
  import warnings
  import numpy
  import pandas
  from scipy.stats import norm
  from utilsforecast.compat import DataFrame
  from utilsforecast.data import generate_series
label_desc: Use image node_id 1 for calling a global function with example usage: generate_series(n_series, freq, min_length, max_length, n_static_features, equal_ends, engine, seed) and returns: utils_generate_series