code: def annual_return(returns, period=DAILY, annualization=None):
      
  
      if len(returns) < 1:
          return np.nan
  
      ann_factor = annualization_factor(period, annualization)
      num_years = len(returns) / ann_factor
      # Pass array to ensure index -1 looks up successfully.
      ending_value = cum_returns_final(returns, starting_value=1)
  
      return ending_value ** (1 / num_years) - 1
docs: Determines the mean annual growth rate of returns. This is equivilent
      to the compound annual growth rate.
  
      Parameters
      ----------
      returns : pd.Series or np.ndarray
          Periodic returns of the strategy, noncumulative.
          - See full explanation in :func:`~empyrical.stats.cum_returns`.
      period : str, optional
          Defines the periodicity of the 'returns' data for purposes of
          annualizing. Value ignored if `annualization` parameter is specified.
          Defaults are::
  
              'monthly':12
              'weekly': 52
              'daily': 252
  
      annualization : int, optional
          Used to suppress default values available in `period` to convert
          returns into annual returns. Value should be the annual frequency of
          `returns`.
  
      Returns
      -------
      annual_return : float
          Annual Return as CAGR (Compounded Annual Growth Rate).