From 2ab9ca54567a3adc910c645e41572d5e73498d1c Mon Sep 17 00:00:00 2001 From: Pablo Martin Date: Thu, 27 Jun 2024 18:11:22 +0200 Subject: [PATCH] improve typing --- xexe/money_amount.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/xexe/money_amount.py b/xexe/money_amount.py index 2976315..f617569 100644 --- a/xexe/money_amount.py +++ b/xexe/money_amount.py @@ -12,11 +12,13 @@ DEFAULT_MONEY_PRECISION = Decimal( class MoneyAmount: - def __init__(self, amount, currency): + def __init__( + self, amount: Union[int, Decimal, str], currency: Union[str, Currency] + ) -> "MoneyAmount": self.amount = self._parse_amount(amount) self.currency = self._parse_currency(currency) - def _parse_amount(self, amount: Union[int, Decimal, str]): + def _parse_amount(self, amount: Union[int, Decimal, str]) -> Decimal: if isinstance(amount, (int, Decimal)): return Decimal(amount).quantize(DEFAULT_MONEY_PRECISION) elif isinstance(amount, str): @@ -27,7 +29,7 @@ class MoneyAmount: else: raise TypeError(f"Amount must be int, Decimal, or str, not {type(amount)}") - def _parse_currency(self, currency): + def _parse_currency(self, currency: Union[str, Currency]) -> Currency: if isinstance(currency, Currency): return currency if isinstance(currency, str):