From 9090492c0e836c4c9f1e5257d270bb70fd0421fe Mon Sep 17 00:00:00 2001 From: Sarey Hamarneh Date: Wed, 26 Apr 2017 15:59:05 -0400 Subject: [PATCH 1/3] Annualize liability --- bpfin/financials/liability.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/bpfin/financials/liability.py b/bpfin/financials/liability.py index d0aaa20..f00cbf1 100644 --- a/bpfin/financials/liability.py +++ b/bpfin/financials/liability.py @@ -93,7 +93,8 @@ def final_liability_dict(start_date, liability_dictionary, months): 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]) + 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: @@ -107,4 +108,14 @@ def final_liability_dict(start_date, liability_dictionary, months): for key, value in final_dict.items(): real_dict[datetime(key[0], key[1], key[2])] = value - return real_dict + annual_liability_dict = {} + for full_date, liability in real_dict.items(): + if full_date.year not in annual_liability_dict: + annual_liability_dict[full_date.year] = [] + if full_date.year in annual_liability_dict: + annual_liability_dict[full_date.year].append(liability) + sum_dict = {} + for year, value in annual_liability_dict.items(): + sum_dict[year] = sum(value) + + return sum_dict -- GitLab From 016b51492b53f56537f16563b0d8d5db90bac688 Mon Sep 17 00:00:00 2001 From: Sarey Hamarneh Date: Wed, 26 Apr 2017 16:02:28 -0400 Subject: [PATCH 2/3] Test --- bpfin/tests/test_financials/test_liability.py | 28 ++----------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/bpfin/tests/test_financials/test_liability.py b/bpfin/tests/test_financials/test_liability.py index 9d8f26c..606f621 100644 --- a/bpfin/tests/test_financials/test_liability.py +++ b/bpfin/tests/test_financials/test_liability.py @@ -8,31 +8,9 @@ def test_final_liability_dict(): input_dict = db.liability_dictionary input_duration = db.analysis_date['proforma_duration'] output = { - datetime(2012, 1, 31): 0, - datetime(2012, 2, 29): 0, - datetime(2012, 3, 31): 0, - datetime(2012, 4, 30): 0, - datetime(2012, 5, 31): 0, - datetime(2012, 6, 30): 0, - datetime(2012, 7, 31): 0, - datetime(2012, 8, 31): 100, - datetime(2012, 9, 30): 100, - datetime(2012, 10, 31): 100, - datetime(2012, 11, 30): 100, - datetime(2012, 12, 31): 250, - datetime(2013, 1, 31): 250, - datetime(2013, 2, 28): 250, - datetime(2013, 3, 31): 250, - datetime(2013, 4, 30): 250, - datetime(2013, 5, 31): 250, - datetime(2013, 6, 30): 250, - datetime(2013, 7, 31): 250, - datetime(2013, 8, 31): 250, - datetime(2013, 9, 30): 250, - datetime(2013, 10, 31): 100, - datetime(2013, 11, 30): 100, - datetime(2013, 12, 31): 100, - datetime(2014, 1, 31): 100 + 2012: 650, + 2013: 2550, + 2014: 100 } result = final_liability_dict(input_start_date, input_dict, input_duration) -- GitLab From 515dff66c10d13e32dc6f4525707dcb873379e69 Mon Sep 17 00:00:00 2001 From: Sarey Hamarneh Date: Wed, 26 Apr 2017 17:02:37 -0400 Subject: [PATCH 3/3] Fix if statement --- bpfin/financials/liability.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bpfin/financials/liability.py b/bpfin/financials/liability.py index f00cbf1..01e5ceb 100644 --- a/bpfin/financials/liability.py +++ b/bpfin/financials/liability.py @@ -112,8 +112,7 @@ def final_liability_dict(start_date, liability_dictionary, months): for full_date, liability in real_dict.items(): if full_date.year not in annual_liability_dict: annual_liability_dict[full_date.year] = [] - if full_date.year in annual_liability_dict: - annual_liability_dict[full_date.year].append(liability) + annual_liability_dict[full_date.year].append(liability) sum_dict = {} for year, value in annual_liability_dict.items(): sum_dict[year] = sum(value) -- GitLab