cashflow_analytics.macaulay_duration
************************************

spice.cashflow_analytics.macaulay_duration(cashflows: Series, yield_rate: float = 0.08, valuation_date: date | None = None, day_count_convention: str = 'ACT_365', compounding_frequency: Literal['annual', 'semi_annual'] = 'annual') -> float

   Calculate Macaulay duration (time-weighted average of cashflows).

   Macaulay duration is the weighted average time to receive
   cashflows.

   Parameters:
      * **cashflows** -- Series with date index and cashflow amounts
        as values

      * **yield_rate** -- Yield rate to consider (usually estimated
        yield as of the valuation date)

      * **valuation_date** -- Date to value cashflows from (defaults
        to today)

      * **day_count_convention** -- Day counting method

      * **compounding_frequency** -- Frequency of discount rate
        compounding ("annual" or "semi_annual")

   Returns:
      Macaulay duration in years
