diff --git a/conservancy_beancount/data.py b/conservancy_beancount/data.py index a6d8ae7..ddb3196 100644 --- a/conservancy_beancount/data.py +++ b/conservancy_beancount/data.py @@ -25,6 +25,7 @@ import decimal from beancount.core import account as bc_account from typing import ( + cast, Iterable, Iterator, MutableMapping, @@ -212,13 +213,11 @@ class Posting(BasePosting): meta: Metadata # type:ignore[assignment] def is_payment(self, threshold: DecimalCompat=0) -> bool: + threshold = cast(decimal.Decimal, threshold) return ( self.account.is_real_asset() and self.units.number is not None - # mypy says abs returns an object and we can't negate that. - # Since we know threshold is numeric, it seems safe to assume - # the return value of abs is numeric as well. - and self.units.number < -abs(threshold) # type:ignore[operator] + and self.units.number < -abs(threshold) )