From 877b50ef8802f8b59d81ccabcab22fe185e898d7 Mon Sep 17 00:00:00 2001 From: xengineering Date: Wed, 4 Sep 2024 20:56:03 +0200 Subject: Rename income to flow Modeling income and expenses separately does not make sense since the only difference is the sign of the amount. Separate definitions would lead to a lot of duplicated code. --- finance/income.py | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 finance/income.py (limited to 'finance/income.py') diff --git a/finance/income.py b/finance/income.py deleted file mode 100644 index 8d775cb..0000000 --- a/finance/income.py +++ /dev/null @@ -1,33 +0,0 @@ -import dataclasses -from datetime import datetime -from decimal import Decimal - - -@dataclasses.dataclass(kw_only=True, frozen=True) -class Income: - """Income models financial income paid on the first day of a month""" - - amount: Decimal - - def integrate(self, start: datetime, end: datetime) -> Decimal: - """Integrate the income from a start to an end date""" - - retval = Decimal(0.0) - - current = datetime(start.year, start.month, 1) - - if start == current: - retval += self.amount - - while True: - if current.month == 12: - current = datetime(current.year + 1, 1, 1) - else: - current = datetime(current.year, current.month + 1, 1) - - if current <= end: - retval += self.amount - else: - break - - return retval -- cgit v1.2.3-70-g09d2