Source code for portfolio_toolkit.utils.period.get_last_years

from datetime import date
from typing import List

from .period import Period


[docs] def get_last_years(n=4) -> List[Period]: """ Returns the last n years as Period objects. For n=4 in year 2025, returns: [Period("2022", date(2022, 1, 1), date(2022, 12, 31)), Period("2023", date(2023, 1, 1), date(2023, 12, 31)), Period("2024", date(2024, 1, 1), date(2024, 12, 31)), Period("2025", date(2025, 1, 1), date(2025, 12, 31))] Args: n (int): Number of years to return Returns: List[Period]: List of Period objects representing each year """ today = date.today() results = [] for i in range(n): # Get the current year minus i years target_year = today.year - i # Create start and end dates for the year start_date = date(target_year, 1, 1) end_date = date(target_year, 12, 31) # Create year label year_label = str(target_year) # Create Period object year_period = Period(year_label, start_date, end_date) results.append(year_period) results.reverse() # Sort chronologically from oldest to newest return results