diff --git a/bpfin/financials/liability.py b/bpfin/financials/liability.py index 642df73f4bf3394021001cce795d6f9c61cae00f..53a36f1c0b06de486b19d4802b834f099eb3ee53 100644 --- a/bpfin/financials/liability.py +++ b/bpfin/financials/liability.py @@ -1,5 +1,5 @@ import calendar -from datetime import datetime +from datetime import date def define_date_start(liability_dictionary): @@ -7,7 +7,7 @@ def define_date_start(liability_dictionary): Args: liability_dictionary (dictionary): dictionary of debts Return: - datetime: max date + date: max date """ date_list = [] for key, value in liability_dictionary.items(): @@ -18,10 +18,10 @@ def define_date_start(liability_dictionary): def add_months(sourcedate, months): """Add desired number of months to current date Args: - sourcedate (datetime): start date + sourcedate (date): start date months (int): number of months to add Return: - datetime: new date value + date: new date value """ month = sourcedate.month year = sourcedate.year @@ -35,21 +35,21 @@ def add_months(sourcedate, months): else: month = month + months day = min(sourcedate.day, calendar.monthrange(year, month)[1]) - return datetime(year, month, day) + return date(year, month, day) -def liability_calendar(date, months): +def liability_calendar(input_date, months): """Create calendar of date to date+months Args: - date (datetime): start date + input_date (date): start date months (int): number of months to add Return: list: list (calendar) of dates """ - liability_calendar = [] + liab_calendar = [] for i in range(months): - liability_calendar.append(add_months(date, i)) - return liability_calendar + liab_calendar.append(add_months(input_date, i)) + return liab_calendar def create_liability_dict(liability_dictionary): @@ -63,8 +63,8 @@ def create_liability_dict(liability_dictionary): for key, value in liability_dictionary.items(): cal = liability_calendar(value[3], value[2]) temp_dict = {} - for date in cal: - temp_dict[date] = value[0] + for current_date in cal: + temp_dict[current_date] = value[0] final_dict.append(temp_dict) return final_dict @@ -72,9 +72,8 @@ def create_liability_dict(liability_dictionary): def final_liability_dict(analysis_date, liability_dictionary): """Create dictionary of {(year,month):debt value}, which includes all debts Args: - start_date (datetime): first date of the dictionary + analysis_date (dict): {start_date, duration in years} liability_dictionary (dictionary): dictionary of debt ID key with associated values, including key - months (integer): length of dictionary Return: dictionary: {(year,month):debt value} """ @@ -93,10 +92,13 @@ def final_liability_dict(analysis_date, liability_dictionary): final_dict[( pro_date.year, pro_date.month, calendar.monthrange( pro_date.year, pro_date.month)[1])] = [] - final_dict[(pro_date.year, - pro_date.month, calendar.monthrange( - pro_date.year, pro_date.month)[1] - )].append(debt_date_dict[debt_date]) + final_dict[( + pro_date.year, + pro_date.month, + calendar.monthrange( + pro_date.year, + pro_date.month + )[1])].append(debt_date_dict[debt_date]) for pro_date in pro_forma_calendar: if (pro_date.year, pro_date.month, calendar.monthrange( pro_date.year, pro_date.month)[1]) not in final_dict: @@ -108,7 +110,7 @@ def final_liability_dict(analysis_date, liability_dictionary): real_dict = {} for key, value in final_dict.items(): - real_dict[datetime(key[0], key[1], key[2])] = value + real_dict[date(key[0], key[1], key[2])] = value annual_liability_dict = {} for full_date, liability in real_dict.items():